Пример #1
0
def test_edit_profile(client, user, user2, path, data, message):
    conftest.login(client, user)
    assert message in client.post(path, data=data, follow_redirects=True).data
    if User.query.get(user.user_id).email == NEW_EMAIL:
        User.query.get(user.user_id).email = EMAIL
        conftest.db.session.commit()
    conftest.logout(client)
Пример #2
0
def test_add_remove_recipe(client, user, product, ingredient):
    product_id = product.product_id
    ingredient_id = ingredient.ingredient_id
    conftest.login(client, user)
    assert Recipe.query.filter(
        and_(Recipe.product_id == product_id, Recipe.ingredient_id
             == ingredient_id)).first() is None
    unit = Unit.query.get(ingredient.unit_id)
    if unit.symbol:
        name = unit.symbol
    else:
        name = unit.name
    data = {'ingredient': ingredient.name, 'amount': 500, 'unit': name}
    client.post(f"{conftest.ROUTES['view_product']}{product_id}/", data=data)
    assert Recipe.query.filter(
        and_(Recipe.product_id == product_id,
             Recipe.ingredient_id == ingredient_id)).first() is not None
    assert (conftest.MESSAGES['existing_ingredient']
            in client.post(f"{conftest.ROUTES['view_product']}{product_id}/",
                           data=data).data)
    client.get(f"{conftest.ROUTES['view_product']}{product_id}"
               f"{conftest.ROUTES['delete_ingredient']}{ingredient_id}/")
    assert Recipe.query.filter(
        and_(Recipe.product_id == product_id, Recipe.ingredient_id
             == ingredient_id)).first() is None
    conftest.logout(client)
Пример #3
0
def test_delete_product(client, user, product):
    product_id = product.product_id
    conftest.login(client, user)
    client.get(f"{conftest.ROUTES['view_product']}"
               f"{product_id}{conftest.ROUTES['delete_product']}")
    assert Product.query.get(product_id) is None
    conftest.logout(client)
Пример #4
0
def test_edit_available_upon_login(client, user):
    user_id = user.user_id
    assert (conftest.MESSAGES['edit']
            not in client.get(f"{conftest.ROUTES['profile']}{user_id}/").data)
    conftest.login(client, user)
    assert (conftest.MESSAGES['edit']
            in client.get(f"{conftest.ROUTES['profile']}{user_id}/").data)
    conftest.logout(client)
Пример #5
0
 def test_alreadyLoggedIn2(self, testClient, testUser2):
     self.form = {"username": "******", 'password': '******'}
     with testClient:
         login(testClient, "sarahsmith", 'password1234')
         assert current_user == testUser2
         response = testClient.get(url_for('main.index', _external=False),
                                   follow_redirects=True)
         assert b'Search for Business' in response.data
         logout(testClient)
Пример #6
0
def test_share_product(client, user, product):
    conftest.login(client, user)
    product_id = product.product_id
    public = product.public
    client.get(f"{conftest.ROUTES['view_product']}{product_id}"
               f"{conftest.ROUTES['share']}")
    assert Product.query.get(product_id).public != public
    client.get(f"{conftest.ROUTES['view_product']}{product_id}"
               f"{conftest.ROUTES['share']}")
    assert Product.query.get(product_id).public == public
    conftest.logout(client)
Пример #7
0
def test_product_add_success(client, user):
    conftest.login(client, user)
    data = {'name': 'test_product', 'amount': 500, 'unit': 'g', 'public': True}
    assert (client.post(
        conftest.ROUTES['new_product'], data=data,
        follow_redirects=True).status_code == conftest.HTTP_CODES['ok'])
    product = Product.query.filter(
        and_(Product.name == data['name'],
             Product.user_id == user.user_id)).first()
    assert product is not None
    conftest.delete(product)
    conftest.logout(client)
Пример #8
0
def test_post_vote(test_client):
    """
    GIVEN: Flask app with test conf
    WHEN: '/post_full' rating section, valid rating count and message - login "vote up"/"vote up" after vote/logout vote
    THEN: vote == 1 without message/error message "already vote"/error message "need login"
    """
    login(test_client, app.config['USERNAME'], app.config['PASSWORD'])
    res = test_client.get('/post_full_vote', query_string=dict(vote='up'))
    assert b"\"rating\": 1" in res.data

    res = test_client.get('/post_full_vote', query_string=dict(vote='up'))
    assert b"You already rate this post" in res.data

    logout(test_client)
    rv = test_client.get('/post_full_vote')
    assert b"You need login for rate this post" in rv.data
Пример #9
0
 def test_new(self, testClient):
     self.form = {"username": "******", 'password': '******'}
     response = self.postRequest(testClient)
     assert response.status_code == 200
     assert b'Search for Business' in response.data
     response = logout(testClient)
     check = testClient.get(url_for('auth.welcome', _external=False),
                            follow_redirects=True)
     assert response.data == check.data
     assert b'Search for Business' not in response.data
Пример #10
0
def test_add_post(test_client):
    """
    GIVEN: Flask app with test conf
    WHEN: '/add_post' POST method with data, login/logout
    THEN: check possible to add post login user, cant add on logout
    """
    login(test_client, app.config['USERNAME'], app.config['PASSWORD'])
    rv = test_client.post('/add_post',
                          data=dict(title='Hello', body='World'),
                          follow_redirects=True)
    assert b"Hello" in rv.data
    assert b"World" in rv.data

    logout(test_client)
    rv = test_client.post('/add_post',
                          data=dict(title='NOTHello', body='NOTWorld'),
                          follow_redirects=True)
    assert b"NOTHello" not in rv.data
    assert b"NOTWorld" not in rv.data
Пример #11
0
def test_add_post_auth(test_client):
    """
    GIVEN: Flask app with test conf
    WHEN: '/' on login/logout user
    THEN: "Add post" visible on login, hide on logout
    #TODO: add_post only confirmed USER access
    """
    rv = login(test_client, app.config['USERNAME'], app.config['PASSWORD'])
    assert b"Add post" in rv.data

    rv = logout(test_client)
    assert b"Add post" not in rv.data
Пример #12
0
def test_login_logout(test_client):
    """
    GIVEN: Flask app with test conf
    WHEN: '/' page with login/logout + login with invalid username, password
    THEN: check valid response + signin error
    """
    rv = login(test_client, app.config['USERNAME'], app.config['PASSWORD'])
    assert b"BLOG" in rv.data
    assert b"Log-out" in rv.data
    assert b'You have entered incorrect username or password' not in rv.data

    rv = logout(test_client)
    assert b"BLOG" in rv.data
    assert b"Sign-In" in rv.data
    assert b"Registration" in rv.data
    assert b"You have entered incorrect username or password" not in rv.data

    rv = login(test_client, app.config['USERNAME'] + 'x',
               app.config['PASSWORD'])
    assert b"You have entered incorrect username or password" in rv.data

    rv = login(test_client, app.config['USERNAME'],
               app.config['PASSWORD'] + 'x')
    assert b"You have entered incorrect username or password" in rv.data
Пример #13
0
def test_product_add_fail(client, user):
    conftest.login(client, user)
    data = {'name': 'test product', 'amount': 500, 'unit': 'g', 'public': True}
    assert (conftest.MESSAGES['existing_product']
            in client.post(conftest.ROUTES['new_product'], data=data).data)
    conftest.logout(client)
Пример #14
0
def test_products_page_returns_ok(client, user):
    conftest.login(client, user)
    assert (client.get(
        conftest.ROUTES['products']).status_code == conftest.HTTP_CODES['ok'])
    conftest.logout(client)