У объекта «модуля» нет атрибута «Тест»Python

Программы на Python
Ответить
Anonymous
 У объекта «модуля» нет атрибута «Тест»

Сообщение Anonymous »

Почему мой тестовый скрипт выдает эту ошибку?
Вот мой код:

Код: Выделить всё

# fill_web_form_test.py

# import statements
import unittest
import fill_web_form
import sqlite3
import sys

form = 'test'
form_name = 'test_form'

if (len(sys.argv) < 2):
raise RuntimeError('Invalid number of arguments, please enter at least one argument to be \
test fill_web_form.py')
for arg in sys.argv:
if(not isinstance(arg, str)):
raise RuntimeError('All arguments must be strings')
# these test strings will be entered by the user as the first parameter
# it will be submitted to the webpage to test fill_web_form.py
data = sys.argv[1:len(sys.argv)]
print "data = " + ', '.join(data)

class KnownValues(unittest.TestCase):

def test_fill_form(self):

# connect to sample database
print 'connecting to database'
conn = sqlite3.connect('FlaskApp\FlaskApp\sample.db')
conn.text_factory = str

# clear database table
print "clearing database"
cursor = conn.cursor()
cursor.execute("DROP TABLE if exists test_table")
cursor.execute("CREATE TABLE if not exists test_table(test_column)")
conn.commit()

# run function
print "running fill_web_form.py"
for data_entry in data:
fill_web_form.fill_form("http://127.0.0.1:5000", form, form_name, data_entry)

# get results of function from database
print "fetching results of fill_web_form.py"
cursor = conn.execute("SELECT * FROM test_table")
result = cursor.fetchall()[0]
print "Database contains strings: " + result
expected = data

# check for expected output
print "checking if output is correct"
self.assertEquals(expected, result)

# Run tests

if __name__ == '__main__':
unittest.main()
Вот код fill_web_form.py, скрипта, который он тестирует

Код: Выделить всё

# fill_web_form.py
import mechanize

def fill_form(url, form, form_name, data):
print "opening browser"
br = mechanize.Browser()
print "opening url...please wait"
br.open(url)
print br.title()
print "selecting form"
br.select_form(name=form)
print "entering string:'" + data +"' into form"
br[form_name] = data
print "submitting form"
br.submit()
Когда я запускаю python fill_web_form_test.py "testone" "testtwo" "testthree" в cmd Я получаю эту ошибку:

Мой тестовый скрипт должен взять В любом количестве строк и отправке на fill_web_form.py , которая опубликует их в веб -форму, которая у меня есть в моей системе по телефону 127.0.0.1
Но я держу Получение этой ошибки < /p>

attributeerror: у модуля нет атрибута 'testone' < /p>
< /blockquote>
i Не понимайте, я не пытался получить доступ к модулю с атрибутом 'testone, я просто пытался передать эту строку на fill_web_form.py
может кто -нибудь помогите мне?

Подробнее здесь: https://stackoverflow.com/questions/408 ... e-test-one
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»