Example #1
0
def test_ui_mappings__must_be_batch_user_post(client, faker):
    login(client, faker)
    u2 = create_user(faker)
    batch = create_batch_with_columns(faker, u2)

    resp = client.get(url_for('ui.edit_mappings', batch_id=batch.id))
    assert resp.status_code == 403
def test_ui_delete__batch_delete_not_correct_user(client, faker):
    login(client, faker)
    u2 = create_user(faker)

    batch = create_batches(u2, 1, faker)[0]

    resp = client.post(url_for('ui.delete'), data=dict(id=batch.id))

    assert resp.status_code == 403

    batch = Batch.query.filter(Batch.id == batch.id).one()

    assert batch.deleted == False
Example #3
0
def test_ui_list__user_batch_list_beyond_last_page(client, faker):
    page_size = current_app.config["PAGE_SIZE"]

    u = login(client, faker)
    u2 = create_user(faker)

    batches = page_size
    page = 2

    create_batches(u, batches, faker)
    create_batches(u2, batches, faker)

    resp = client.get('/?page={}'.format(page))

    assert resp.status_code == 200
Example #4
0
def test_ui_list__user_batch_list_search_found(client, faker):
    page_size = current_app.config["PAGE_SIZE"]
    batches = page_size

    u = login(client, faker)
    u2 = create_user(faker)

    expected_data = create_batches(u, batches, faker)
    create_batches(u2, batches, faker)

    expected_data[0].name = "Known Elephant"
    update_batch(expected_data[0])

    resp = client.get('/?search={}'.format("Elephant"))

    _assert__boilerplate_html(resp, 1, expected_data[0:1])
def test_services_upload__automap__correct(client, faker, upload_files,
                                           columns):
    u = create_user(faker)

    batch = create_batches(u, 1, faker)[0]

    for index, c in columns.items():
        batch.columns.append(
            Column(column_index=index, name=c['name'], batch_id=batch.id))

    update_batch(batch)

    batch.automap_columns()

    expected = {i: e['mapping'] for i, e in columns.items()}

    assert {c.column_index: c.mapping for c in batch.columns} == expected
def test_services_upload__csv_headers__correct(client, faker, upload_files,
                                               filename, expected):
    u = create_user(faker)

    batch = create_batches(u, 1, faker)[0]
    batch.filename = filename
    update_batch(batch)

    upload_files.copy_file_in(batch, TEST_FILE_PATH, filename)

    extract_batch_column_headers(batch)

    assert len(batch.columns) == 13
    assert {c.column_index: c.name
            for c in batch.columns
            } == {i: e['name']
                  for i, e in expected.items()}
Example #7
0
def login(client, faker):
    u = create_user(faker)

    resp = client.get("/login")

    crf_token = resp.soup.find(
        "input", {"name": "csrf_token"}, type="hidden", id="csrf_token"
    )

    data = dict(email=u.email, password=u.password)

    if crf_token:
        data["csrf_token"] = crf_token.get("value")

    client.post("/login", data=data, follow_redirects=True)

    return u
Example #8
0
def test_ui_list__user_batch_list_last_page(client, faker, pages):
    page_size = current_app.config["PAGE_SIZE"]

    u = login(client, faker)
    u2 = create_user(faker)

    batches = pages * page_size

    expected_data = create_batches(u, batches, faker)
    create_batches(u2, batches, faker)

    resp = client.get('/?page={}'.format(pages))

    _assert__boilerplate_html(resp, page_size, expected_data)

    assert__paginator(
        resp=resp,
        prev_page=pages - 1,
        next_page=None,
        active_page=pages,
    )
Example #9
0
def test_ui_list__user_batch_list(client, faker, my_batches,
                                  other_user_batches):
    u = login(client, faker)
    u2 = create_user(faker)

    expected_data = create_batches(u, my_batches, faker)
    create_batches(u2, other_user_batches, faker)

    resp = client.get('/')

    page_size = current_app.config["PAGE_SIZE"]
    items_on_page = min(page_size, my_batches)

    _assert__boilerplate_html(resp, items_on_page, expected_data)

    pages = my_batches // page_size

    if pages > 1:
        assert__paginator(
            resp=resp,
            prev_page=None,
            next_page=2,
            active_page=1,
        )
Example #10
0
def test_ui_mappings__path_requires_login_post(client, faker):
    u = create_user(faker)
    batch = create_batch_with_columns(faker, u)
    assert__requires_login_post(client,
                                url_for('ui.edit_mappings', batch_id=batch.id))