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
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
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()}
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
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, )
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, )
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))