def test_data_should_accept_from_filter():
    Crowdsourcing(id="aaaaaaa").save()
    Crowdsourcing(id="zzzzzzz").save()
    DB.commit('UPDATE crowdsourcing SET created_at="2015-01-01" WHERE id="aaaaaaa"')  # noqa
    assert len(list(Crowdsourcing.data())) == 2
    assert list(Crowdsourcing.data())[0].id == "zzzzzzz"
    assert len(list(Crowdsourcing.data(_from="2015-01-02"))) == 1
def test_cannot_create_new_tracked_download_if_missing_email(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['company'] = "Totoche SARL"
    form.submit()
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
예제 #3
0
def test_cannot_create_new_tracked_download_if_missing_email(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['company'] = "Totoche SARL"
    form.submit()
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
def test_data_should_accept_from_filter():
    Crowdsourcing(id="aaaaaaa").save()
    Crowdsourcing(id="zzzzzzz").save()
    DB.commit(
        'UPDATE crowdsourcing SET created_at="2015-01-01" WHERE id="aaaaaaa"'
    )  # noqa
    assert len(list(Crowdsourcing.data())) == 2
    assert list(Crowdsourcing.data())[0].id == "zzzzzzz"
    assert len(list(Crowdsourcing.data(_from="2015-01-02"))) == 1
def test_cannot_create_new_tracked_download_without_csrf_token(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form['csrf_token'] = ""
    form.submit(status=400)
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
예제 #6
0
def test_can_create_new_tracked_download_request_from_form(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    assert DB.fetchone('SELECT token as t FROM tracked_download LIMIT 1')['t']
예제 #7
0
def test_cannot_create_new_tracked_download_without_csrf_token(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form['csrf_token'] = ""
    form.submit(status=400)
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
def test_can_create_new_tracked_download_request_from_form(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    assert DB.fetchone('SELECT token as t FROM tracked_download LIMIT 1')['t']
def test_calling_trackeddownload_save_should_persist_data_in_db():
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    dl = TrackedDownload(
        first_name='toto',
        last_name='tata',
        email='*****@*****.**',
        company='toto SA',
        area='',
    )
    dl.save()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
예제 #10
0
def test_calling_trackeddownload_save_should_persist_data_in_db():
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    dl = TrackedDownload(
        first_name='toto',
        last_name='tata',
        email='*****@*****.**',
        company='toto SA',
        area='',
    )
    dl.save()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
def test_can_create_new_crowdsourcing_from_post(client):
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    url = url_for('crowdsourcing')
    response = client.get(url)
    token = get_csrf_token(response.data)
    data = {
        'id': 'xxxx',
        'before': '{"geometry": {"coordinates": [0, 0]}, "properties": {}}',
        'after': '{"geometry": {"coordinates": [1, 1]}, "properties": {}}',
    }
    client.post(url, data=data, headers={'X-CSRFToken': token})
    assert DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
def test_can_create_new_crowdsourcing_from_post(client):
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    url = url_for('crowdsourcing')
    response = client.get(url)
    token = get_csrf_token(response.data)
    data = {
        'id': 'xxxx',
        'before': '{"geometry": {"coordinates": [0, 0]}, "properties": {}}',
        'after': '{"geometry": {"coordinates": [1, 1]}, "properties": {}}',
    }
    client.post(url, data=data, headers={'X-CSRFToken': token})
    assert DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
def test_do_not_create_new_td_if_already_exist_and_valid(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t'] == 1
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t'] == 1
예제 #14
0
def test_do_not_create_new_td_if_already_exist_and_valid(webapp):
    assert not DB.fetchone('SELECT count(*) as t FROM tracked_download')['t']
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t'] == 1
    form = webapp.get(url_for('download')).forms['tracked_download']
    form['first_name'] = "Victor"
    form['last_name'] = "Hugo"
    form['email'] = '*****@*****.**'
    form['company'] = "Totoche SARL"
    form.submit().follow()
    assert DB.fetchone('SELECT count(*) as t FROM tracked_download')['t'] == 1
def test_new_trackeddownload_request_should_send_an_email(webapp, config):
    with mail.record_messages() as outbox:
        form = webapp.get(url_for('download')).forms['tracked_download']
        form['first_name'] = "Victor"
        form['last_name'] = "Hugo"
        form['email'] = '*****@*****.**'
        form['company'] = "Totoche SARL"
        form.submit().follow()
        assert len(outbox) == 1
        assert outbox[0].subject == "Votre téléchargement de la base adresse nationale"  # noqa
        assert "Victor" in outbox[0].body
        token = DB.fetchone('SELECT token FROM tracked_download')['token']
        download_link = "https:{domain}{path}".format(
            domain=config['SITE_URL'],
            path=url_for('download', token=token))
        assert download_link in outbox[0].body
예제 #16
0
def test_new_trackeddownload_request_should_send_an_email(webapp, config):
    with mail.record_messages() as outbox:
        form = webapp.get(url_for('download')).forms['tracked_download']
        form['first_name'] = "Victor"
        form['last_name'] = "Hugo"
        form['email'] = '*****@*****.**'
        form['company'] = "Totoche SARL"
        form.submit().follow()
        assert len(outbox) == 1
        assert outbox[
            0].subject == "Votre téléchargement de la base adresse nationale"  # noqa
        assert "Victor" in outbox[0].body
        token = DB.fetchone('SELECT token FROM tracked_download')['token']
        download_link = "https:{domain}{path}".format(
            domain=config['SITE_URL'], path=url_for('download', token=token))
        assert download_link in outbox[0].body
def test_should_delete_if_id_and_no_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(id="zzzzzzz").save()
    assert DB.fetchone('SELECT count(*) as t FROM crowdsourcing WHERE operation="d"')['t']  # noqa
def test_should_create_if_no_id_but_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(after="zzzzzzz").save()
    assert DB.fetchone('SELECT count(*) as t FROM crowdsourcing WHERE operation="c"')['t']  # noqa
def test_should_update_if_id_and_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(id="xxxx", before="yyyyy", after="zzzzzzz").save()
    assert DB.fetchone('SELECT count(*) as t FROM crowdsourcing WHERE operation="u"')['t']  # noqa
예제 #20
0
def pytest_runtest_setup(item):
    ctx = _app.test_request_context()
    ctx.push()
    DB.init()
    DB.commit('DELETE FROM tracked_download')
    DB.commit('DELETE FROM crowdsourcing')
def test_should_delete_if_id_and_no_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(id="zzzzzzz").save()
    assert DB.fetchone(
        'SELECT count(*) as t FROM crowdsourcing WHERE operation="d"')[
            't']  # noqa
def test_should_create_if_no_id_but_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(after="zzzzzzz").save()
    assert DB.fetchone(
        'SELECT count(*) as t FROM crowdsourcing WHERE operation="c"')[
            't']  # noqa
def test_should_update_if_id_and_after():
    assert not DB.fetchone('SELECT count(*) as t FROM crowdsourcing')['t']
    Crowdsourcing(id="xxxx", before="yyyyy", after="zzzzzzz").save()
    assert DB.fetchone(
        'SELECT count(*) as t FROM crowdsourcing WHERE operation="u"')[
            't']  # noqa