Пример #1
0
def test_search(db_session, client):
    edka = airports.merzbrueck()
    lva = clubs.lva()

    add_fixtures(
        db_session,
        users.john(),
        users.jane(),
        lva,
        clubs.sfn(),
        edka,
        airports.meiersberg(),
    )

    res = client.get("/search?text=aachen")
    assert res.status_code == 200
    assert res.json == {
        "results": [
            {
                "id": edka.id,
                "type": "airport",
                "name": "Aachen Merzbruck",
                "icao": "EDKA",
                "frequency": "122.875",
            },
            {
                "id": lva.id,
                "type": "club",
                "name": "LV Aachen",
                "website": "http://www.lv-aachen.de",
            },
        ]
    }
Пример #2
0
def test_non_json_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id), headers=auth_for(test_user), data='foobar?')
    assert res.status_code == 400
    assert res.json['error'] == 'invalid-request'
Пример #3
0
def test_non_json_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post("/clubs/{id}".format(id=sfn.id),
                      headers=auth_for(test_user),
                      data="foobar?")
    assert res.status_code == 400
    assert res.json["error"] == "invalid-request"
Пример #4
0
def test_invalid_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id), headers=auth_for(test_user), json={"name": ""}
    )
    assert res.status_code == 422
    assert res.json["error"] == "validation-failed"
Пример #5
0
def test_invalid_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id), headers=auth_for(test_user), json={
        'name': '',
    })
    assert res.status_code == 422
    assert res.json['error'] == 'validation-failed'
Пример #6
0
def test_name_filter(db_session, client):
    add_fixtures(db_session, clubs.sfn(), clubs.lva())

    res = client.get("/clubs?name=LV%20Aachen")
    assert res.status_code == 200
    assert res.json == S(
        {"clubs": ExactSequence([{
            "id": int,
            "name": "LV Aachen"
        }])})
Пример #7
0
def test_invalid_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post("/clubs/{id}".format(id=sfn.id),
                      headers=auth_for(test_user),
                      json={"name": ""})
    assert res.status_code == 422
    assert res.json["error"] == "validation-failed"
Пример #8
0
def test_existing_club(db_session, client, test_user):
    lva = clubs.lva()
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, lva)

    res = client.post('/clubs/{id}'.format(id=sfn.id), headers=auth_for(test_user), json={
        'name': 'LV Aachen',
    })
    assert res.status_code == 422
    assert res.json['error'] == 'duplicate-club-name'
Пример #9
0
def test_invalid_data(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id),
                      headers=auth_for(test_user),
                      json={
                          'name': '',
                      })
    assert res.status_code == 422
    assert res.json['error'] == 'validation-failed'
Пример #10
0
def test_update_without_authentication(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        json={"name": "foobar", "website": "https://foobar.de"},
    )
    assert res.status_code == 401

    club = Club.get(sfn.id)
    assert club.name == "Sportflug Niederberg"
    assert club.website == None
Пример #11
0
def test_existing_club(db_session, client, test_user):
    lva = clubs.lva()
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, lva)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        headers=auth_for(test_user),
        json={"name": "LV Aachen"},
    )
    assert res.status_code == 422
    assert res.json["error"] == "duplicate-club-name"
Пример #12
0
def test_name_filter(db_session, client):
    sfn = clubs.sfn()
    lva = clubs.lva()
    add_fixtures(db_session, sfn, lva)

    res = client.get('/clubs?name=LV%20Aachen')
    assert res.status_code == 200
    assert res.json == {
        'clubs': [{
            'id': lva.id,
            'name': 'LV Aachen',
        }]
    }
Пример #13
0
def test_existing_club(db_session, client, test_user):
    lva = clubs.lva()
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, lva)

    res = client.post('/clubs/{id}'.format(id=sfn.id),
                      headers=auth_for(test_user),
                      json={
                          'name': 'LV Aachen',
                      })
    assert res.status_code == 422
    assert res.json['error'] == 'duplicate-club-name'
Пример #14
0
def test_name_filter(db_session, client):
    sfn = clubs.sfn()
    lva = clubs.lva()
    add_fixtures(db_session, sfn, lva)

    res = client.get('/clubs?name=LV%20Aachen')
    assert res.status_code == 200
    assert res.json == {
        'clubs': [{
            'id': lva.id,
            'name': 'LV Aachen',
        }]
    }
Пример #15
0
def test_existing_club(db_session, client, test_user):
    lva = clubs.lva()
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, lva)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        headers=auth_for(test_user),
        json={"name": "LV Aachen"},
    )
    assert res.status_code == 422
    assert res.json["error"] == "duplicate-club-name"
Пример #16
0
def test_update_without_authentication(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id), json={
        'name': 'foobar',
        'website': 'https://foobar.de',
    })
    assert res.status_code == 401

    club = Club.get(sfn.id)
    assert club.name == 'Sportflug Niederberg'
    assert club.website == None
Пример #17
0
def test_update(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id), headers=auth_for(test_user), json={
        'name': 'foobar',
        'website': 'https://foobar.de',
    })
    assert res.status_code == 200

    club = Club.get(sfn.id)
    assert club.name == 'foobar'
    assert club.website == 'https://foobar.de'
Пример #18
0
def test_sfn(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.get('/clubs/{id}'.format(id=sfn.id))
    assert res.status_code == 200
    assert res.json == {
        u'id': sfn.id,
        u'name': u'Sportflug Niederberg',
        u'timeCreated': '2017-01-01T12:34:56+00:00',
        u'website': None,
        u'isWritable': False,
        u'owner': None,
    }
Пример #19
0
def test_pilot_changing_disallowed_copilot(db_session, client):
    """ Pilot is trying to change copilot to user from different club. """

    john = users.john(club=clubs.lva())
    max = users.max(club=clubs.sfn())
    flight = flights.one(igc_file=igcs.simple(owner=john))
    add_fixtures(db_session, flight, john, max)

    response = client.post('/flights/{id}'.format(id=flight.id), headers=auth_for(john), json={
        'pilotId': john.id,
        'copilotId': max.id,
    })

    assert response.status_code == 422
Пример #20
0
def test_update_without_authentication(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id),
                      json={
                          'name': 'foobar',
                          'website': 'https://foobar.de',
                      })
    assert res.status_code == 401

    club = Club.get(sfn.id)
    assert club.name == 'Sportflug Niederberg'
    assert club.website == None
Пример #21
0
def test_sfn(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.get("/clubs/{id}".format(id=sfn.id))
    assert res.status_code == 200
    assert res.json == {
        u"id": sfn.id,
        u"name": u"Sportflug Niederberg",
        u"timeCreated": "2017-01-01T12:34:56+00:00",
        u"website": None,
        u"isWritable": False,
        u"owner": None,
    }
Пример #22
0
def test_update(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        headers=auth_for(test_user),
        json={"name": "foobar", "website": "https://foobar.de"},
    )
    assert res.status_code == 200

    club = Club.get(sfn.id)
    assert club.name == "foobar"
    assert club.website == "https://foobar.de"
Пример #23
0
def test_pilot_changing_disowned_flight(db_session, client):
    """ Unrelated user is trying to change pilots. """

    john = users.john(club=clubs.lva())
    jane = users.jane(club=john.club)
    max = users.max(club=clubs.sfn())
    flight = flights.one(igc_file=igcs.simple(owner=john))
    add_fixtures(db_session, flight, john, jane, max)

    response = client.post('/flights/{id}'.format(id=flight.id), headers=auth_for(jane), json={
        'pilotId': john.id,
        'copilotId': max.id,
    })

    assert response.status_code == 403
Пример #24
0
def test_update(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post('/clubs/{id}'.format(id=sfn.id),
                      headers=auth_for(test_user),
                      json={
                          'name': 'foobar',
                          'website': 'https://foobar.de',
                      })
    assert res.status_code == 200

    club = Club.get(sfn.id)
    assert club.name == 'foobar'
    assert club.website == 'https://foobar.de'
Пример #25
0
def test_update_without_authentication(db_session, client):
    sfn = clubs.sfn()
    add_fixtures(db_session, sfn)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        json={
            "name": "foobar",
            "website": "https://foobar.de"
        },
    )
    assert res.status_code == 401

    club = Club.get(sfn.id)
    assert club.name == "Sportflug Niederberg"
    assert club.website == None
Пример #26
0
def test_list_all(db_session, client):
    sfn = clubs.sfn()
    lva = clubs.lva()
    add_fixtures(db_session, sfn, lva)

    res = client.get('/clubs')
    assert res.status_code == 200
    assert res.json == {
        'clubs': [{
            'id': lva.id,
            'name': 'LV Aachen',
        }, {
            'id': sfn.id,
            'name': 'Sportflug Niederberg',
        }]
    }
Пример #27
0
def test_list_all(db_session, client):
    sfn = clubs.sfn()
    lva = clubs.lva()
    add_fixtures(db_session, sfn, lva)

    res = client.get('/clubs')
    assert res.status_code == 200
    assert res.json == {
        'clubs': [{
            'id': lva.id,
            'name': 'LV Aachen',
        }, {
            'id': sfn.id,
            'name': 'Sportflug Niederberg',
        }]
    }
Пример #28
0
def test_list_all(db_session, client):
    add_fixtures(db_session, clubs.sfn(), clubs.lva())

    res = client.get("/clubs")
    assert res.status_code == 200
    assert res.json == S({
        "clubs":
        ExactSequence([
            {
                "id": int,
                "name": "LV Aachen"
            },
            {
                "id": int,
                "name": "Sportflug Niederberg"
            },
        ])
    })
Пример #29
0
def test_update(db_session, client, test_user):
    sfn = clubs.sfn()
    test_user.club = sfn
    add_fixtures(db_session, sfn)

    res = client.post(
        "/clubs/{id}".format(id=sfn.id),
        headers=auth_for(test_user),
        json={
            "name": "foobar",
            "website": "https://foobar.de"
        },
    )
    assert res.status_code == 200

    club = Club.get(sfn.id)
    assert club.name == "foobar"
    assert club.website == "https://foobar.de"
Пример #30
0
def test_search_doe(db_session, client):
    john = users.john()
    jane = users.jane()

    add_fixtures(db_session, john, jane, clubs.lva(), clubs.sfn(), airports.merzbrueck(), airports.meiersberg())

    res = client.get('/search?text=doe')
    assert res.status_code == 200
    assert res.json == {
        'results': [{
            'id': jane.id,
            'type': 'user',
            'name': 'Jane Doe',
        }, {
            'id': john.id,
            'type': 'user',
            'name': 'John Doe',
        }],
    }
Пример #31
0
def test_search_doe(db_session, client):
    john = users.john()
    jane = users.jane()

    add_fixtures(db_session, john, jane, clubs.lva(), clubs.sfn(), airports.merzbrueck(), airports.meiersberg())

    res = client.get('/search?text=doe')
    assert res.status_code == 200
    assert res.json == {
        'results': [{
            'id': jane.id,
            'type': 'user',
            'name': 'Jane Doe',
        }, {
            'id': john.id,
            'type': 'user',
            'name': 'John Doe',
        }],
    }
Пример #32
0
def test_search(db_session, client):
    edka = airports.merzbrueck()
    lva = clubs.lva()

    add_fixtures(db_session, users.john(), users.jane(), lva, clubs.sfn(), edka, airports.meiersberg())

    res = client.get('/search?text=aachen')
    assert res.status_code == 200
    assert res.json == {
        'results': [{
            'id': edka.id,
            'type': 'airport',
            'name': 'Aachen Merzbruck',
            'icao': 'EDKA',
            'frequency': '122.875',
        }, {
            'id': lva.id,
            'type': 'club',
            'name': 'LV Aachen',
            'website': 'http://www.lv-aachen.de',
        }],
    }
Пример #33
0
def test_search_doe(db_session, client):
    john = users.john()
    jane = users.jane()

    add_fixtures(
        db_session,
        john,
        jane,
        clubs.lva(),
        clubs.sfn(),
        airports.merzbrueck(),
        airports.meiersberg(),
    )

    res = client.get("/search?text=doe")
    assert res.status_code == 200
    assert res.json == {
        "results": [
            {"id": jane.id, "type": "user", "name": "Jane Doe"},
            {"id": john.id, "type": "user", "name": "John Doe"},
        ]
    }
Пример #34
0
def test_search(db_session, client):
    edka = airports.merzbrueck()
    lva = clubs.lva()

    add_fixtures(db_session, users.john(), users.jane(), lva, clubs.sfn(), edka, airports.meiersberg())

    res = client.get('/search?text=aachen')
    assert res.status_code == 200
    assert res.json == {
        'results': [{
            'id': edka.id,
            'type': 'airport',
            'name': 'Aachen Merzbruck',
            'icao': 'EDKA',
            'frequency': '122.875',
        }, {
            'id': lva.id,
            'type': 'club',
            'name': 'LV Aachen',
            'website': 'http://www.lv-aachen.de',
        }],
    }