flask validate_on_submit() връща false дори когато WTF_CSRF_ENABLED е настроен на False (unittest-ing)

Предоставяне на необходимия код по-долу. Заявката за публикация, която правя в моя test_book_creation(), трябва да създаде Book запис, което не прави, защото validate_on_submit() връща False дори когато съм задал WTF_CSRF_ENABLED конфигурационната променлива на приложението на False.

конфигурационен обект:

class TestConfig:
    TESTING = True
    WTF_CSRF_ENABLED = False
    DEBUG = False
    SECRET_KEY = os.environ.get('SECRET_KEY')
    SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_SQLALCHEMY_DATABASE_URI')

тестова функция:

def test_book_creation(self):
    data = dict(book_count=2, title='A Book for Testing', author='tester',\
    price=340,genre='Fiction',language_code='eng')
    response = self.client.post('/book/new', content_type='multipart/form-data', data=data, follow_redirects=True)
    num_books = Book.query.filter_by(title="A Book for Testing", authors="tester").count()
    print('****************num_books****************', num_books)  # this prints num_books = 0
    books = Book.query.count()
    print('****************books****************', books)  # this prints books = 0

Функция за настройка на теста:

def setUp(self):
    '''executed prior to each test'''
    print('*************setUp***************')
    # Create and setup the application
    self.app = create_app(TestConfig)
    print('*************self.app.config.get("WTF_CSRF_ENABLED")***************', self.app.config.get("WTF_CSRF_ENABLED"))
    self.app_context = self.app.app_context()
    self.app_context.push()
    self.client = self.app.test_client()

    # Setup the database
    Book.__table__.drop(db.engine)
    User.__table__.drop(db.engine)
    Transaction.__table__.drop(db.engine)
    Book.__table__.create(db.engine)
    User.__table__.create(db.engine)
    Transaction.__table__.create(db.engine)

    # db.create_all()

    # create a user
    hashed_password = bcrypt.generate_password_hash('123').decode('utf-8')
    user = User(username='test_user3', email='[email protected]', password=hashed_password)
    db.session.add(user)
    db.session.commit()

    response = self.client.post('/login', content_type='multipart/form-data', data={'email':'[email protected]','password':'123', 'remember':0})

form.validate_on_submit() във функцията на маршрут /book/new връща False, така че системата не изпреварва това.

Всяка помощ ще бъде оценена.


person user10058776    schedule 17.06.2021    source източник
comment
@user:13187446 Видях, че и вие сте се сблъскали със същия проблем. Знаете ли какво може да правя грешно?   -  person user10058776    schedule 18.06.2021