def test__study_list__owned_study__upload_count(client, faker, outstanding, completed, deleted): user = login(client, faker) user2 = faker.get_test_user() study = faker.get_test_study(owner=user) study2 = faker.get_test_study(owner=user) # Cycle is used to alternately allocate # the uploads to a different user # thus we can test that we can see # uploads by users other than ourselves users = cycle([user, user2]) for _ in range(outstanding): u = faker.get_test_upload(study=study, uploader=next(users)) for _ in range(completed): u = faker.get_test_upload(study=study, completed=True, uploader=next(users)) for _ in range(deleted): u = faker.get_test_upload(study=study, deleted=True, uploader=next(users)) resp = get_and_assert_standards(client, _url(), user) assert resp.status_code == status.HTTP_200_OK study_row = resp.soup.find("td", string=study.name).parent assert study_row.find_all("td")[2].string == str(outstanding + completed) assert study_row.find_all("td")[3].string == str(outstanding)
def test__boilerplate__search(client, faker): user = login(client, faker) resp = get_and_assert_standards(client, url_for('search'), user, has_form=True) assert__search_html(resp.soup, clear_url=url_for('search'))
def _get(client, url, loggedin_user, study): resp = get_and_assert_standards(client, url, loggedin_user) assert__search_html(resp.soup, clear_url=_url(study_id=study.id)) assert resp.soup.find('a', string="Upload Data", href=url_for('ui.upload_data', study_id=study.id)) is not None assert resp.soup.find("h1", string="{} Uploads".format(study.name)) is not None return resp
def test__standard_views(client, faker, error_code): user = login(client, faker) resp = get_and_assert_standards(client, url_for('give_me_error', error_code=error_code), user, has_navigation=False) assert resp.status_code == error_code
def lbrc_identity_get(client, url, user, has_form=False): resp = get_and_assert_standards(client, url, user, has_form) assert resp.soup.nav is not None assert resp.soup.nav.find("a", string="Studies") is not None assert resp.soup.nav.find("a", string="Tools") is not None assert resp.soup.nav.find("a", href=url_for('ui.labels'), string="Labels") is not None return resp
def test__study_list__no_studies__no_display(client, faker): user = login(client, faker) resp = get_and_assert_standards(client, _url(), user) assert resp.status_code == status.HTTP_200_OK assert resp.soup.find("h2", string="Owned Studies") is None assert resp.soup.find("h2", string="Collaborating Studies") is None assert len(resp.soup.find_all("table", "table study_list")) == 0
def _get(client, url, loggedin_user, study): resp = get_and_assert_standards(client, url, loggedin_user, has_form=True) assert resp.soup.find("div", string="{}: Upload".format(study.name)) is not None assert resp.soup.find("a", href=url_for('ui.index'), string="Cancel") is not None assert resp.soup.find("button", type='submit', string="Upload") is not None return resp
def test__boilerplate__forms_csrf_token(client, faker, path, requires_login): if not requires_login: user = faker.user_details() else: user = login(client, faker) resp = get_and_assert_standards(client, url_for(path), user, has_form=True, has_navigation=False)
def lbrc_services_get(client, url, user, has_form=False): resp = get_and_assert_standards(client, url, user, has_form) assert resp.soup.nav is not None assert resp.soup.nav.find("a", href=url_for('ui.my_requests'), string="My Requests") is not None if user.service_owner: assert resp.soup.nav.find("a", href=url_for('ui.my_jobs'), string='My Jobs') is not None return resp
def _get(client, url, loggedin_user, study): resp = get_and_assert_standards(client, url, loggedin_user) assert__search_html(resp.soup, clear_url=_url(_external=False, study_id=study.id)) assert resp.soup.find('input', type="checkbox", id='showCompleted') is not None assert resp.soup.find('a', string="Download Upload Details", href=url_for('ui.study_csv', study_id=study.id)) is not None assert resp.soup.find("h1", string="{} Uploads".format(study.name)) is not None return resp
def test__study_list__owns_mult_studies(client, faker, study_count): user = login(client, faker) studies = [] for _ in range(study_count): studies.append(faker.get_test_study(owner=user)) resp = get_and_assert_standards(client, _url(), user) assert resp.status_code == status.HTTP_200_OK assert resp.soup.find("h2", string="Owned Studies") is not None assert resp.soup.find("h2", string="Collaborating Studies") is None assert len(resp.soup.select("table.table")) == 1 assert len(resp.soup.select("table.table > tbody > tr")) == study_count for s in studies: assert resp.soup.find("a", href=url_for("ui.study", study_id=s.id)) is not None assert (resp.soup.find("a", href=url_for("ui.study_csv", study_id=s.id)) is not None) assert resp.soup.find("td", string=s.name) is not None
def test__boilerplate__html_standards(client, faker): user = login(client, faker) resp = get_and_assert_standards(client, url_for('ui.index'), user)