Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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'))
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
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
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
def test__boilerplate__html_standards(client, faker):
    user = login(client, faker)
    resp = get_and_assert_standards(client, url_for('ui.index'), user)