import pytest
import sys, os
myPath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(myPath + '/../web/')
try:
    os.remove('./tests/hbc.db')
except:
    pass

from web import app


@pytest.fixture
def client():
    app.app.config['TESTING'] = True
    client = app.app.test_client()

    yield client


def test_root_page(client):
    rv = client.get('/')
    assert rv.status_code == 200
    assert b'Please enter your first name and initial' in rv.data


def test_generate(client):
    for identifier in app.my_db.get_identifiers_list():
        rv = client.post('/generate', data=dict(name='tester'), follow_redirects=True)
        assert rv.status_code == 200
        assert b'Please mark all of your bottlecaps with the following identifier: <strong>' \
               + str(identifier).encode('UTF-8') in rv.data


def test_generate_over_limit(client):
    rv = client.post('/generate', data=dict(name='tester'), follow_redirects=True)
    assert rv.status_code == 200
    assert b'Maximum entry limit reached - please contact Sean or Joe' in rv.data


