Ejemplo n.º 1
0
    def test_get_shares(self):
        bet = BetFactory.create(value=99)
        MemberFactory.create(share=bet.share, name="Tom Doe")
        MemberFactory.create(share=bet.share, name="Sarah Foe")

        BetFactory.create(value=102)

        response = self.app.get(f"/api/v1/shares")

        expected = {'shares': [{'archived': False,
                                'bets': [{'end_date': None,
                                          'id': 1,
                                          'share_id': 1,
                                          'start_date': '2018-01-01T00:00:00',
                                          'value': 99}],
                                'id': 1,
                                'name': 'Sarah Foe & Tom Doe',
                                'note': None,
                                'station_id': 1},
                               {'archived': False,
                                'bets': [{'end_date': None,
                                          'id': 2,
                                          'share_id': 2,
                                          'start_date': '2018-01-01T00:00:00',
                                          'value': 102}],
                                'id': 2,
                                'name': '',
                                'note': None,
                                'station_id': 2}]}

        self.assertEqual(response.status_code, 200)

        self.assertEqual(response.json, expected)
Ejemplo n.º 2
0
    def test_members(self):
        member1 = MemberFactory.create(email="*****@*****.**",
                                       name="Peter Farmer",
                                       phone="001234")
        member2 = MemberFactory.create(email="*****@*****.**",
                                       name="Paula Farmer",
                                       phone="001234")
        member3 = MemberFactory.create(email="*****@*****.**",
                                       name="Jane Doe",
                                       phone="0055689")

        station1 = StationFactory.create(name="Station 1")
        station2 = StationFactory.create(name="Station 2")

        share1 = ShareFactory.create(members=[member1, member2], station=station1)
        share2 = ShareFactory.create(members=[member3], station=station2)

        BetFactory.create(share=share1, start_date=date(2018, 1, 1), end_date=date(2018, 12, 1))
        BetFactory.create(share=share1, start_date=date(2019, 1, 1))
        BetFactory.create(share=share2, start_date=date(2019, 1, 15))

        expected = [
            {
                "email": "*****@*****.**",
                "id": member1.id,
                "name": "Peter Farmer",
                "phone": "001234",
                "share_id": share1.id,
                "station_name": "Station 1",
                "join_date": "2018-01-01T00:00:00"
            },
            {
                "email": "*****@*****.**",
                "id": member2.id,
                "name": "Paula Farmer",
                "phone": "001234",
                "share_id": share1.id,
                "station_name": "Station 1",
                "join_date": "2018-01-01T00:00:00"
            },
            {
                "email": "*****@*****.**",
                "id": member3.id,
                "name": "Jane Doe",
                "phone": "0055689",
                "share_id": share2.id,
                "station_name": "Station 2",
                "join_date": "2019-01-15T00:00:00"
            }
        ]

        response: Response = self.app.get(f"/api/v1/members")

        self.assertEqual(response.status_code, 200)
        self.maxDiff = None
        self.assertEqual(response.json, {"members": expected})
Ejemplo n.º 3
0
    def test_members(self):
        member1 = MemberFactory.create(email="*****@*****.**",
                                       name="Peter Farmer",
                                       phone="001234")
        member2 = MemberFactory.create(email="*****@*****.**",
                                       name="Paula Farmer",
                                       phone="001234")
        member3 = MemberFactory.create(email="*****@*****.**",
                                       name="Jane Doe",
                                       phone="0055689")

        station1 = StationFactory.create(name="Station 1")
        station2 = StationFactory.create(name="Station 2")

        share1 = ShareFactory.create(members=[member1, member2], station=station1)
        share2 = ShareFactory.create(members=[member3], station=station2)

        expected = [
            {
                "email": "*****@*****.**",
                "id": member1.id,
                "name": "Peter Farmer",
                "phone": "001234",
                "share_id": share1.id,
                "station_name": "Station 1"
            },
            {
                "email": "*****@*****.**",
                "id": member2.id,
                "name": "Paula Farmer",
                "phone": "001234",
                "share_id": share1.id,
                "station_name": "Station 1"
            },
            {
                "email": "*****@*****.**",
                "id": member3.id,
                "name": "Jane Doe",
                "phone": "0055689",
                "share_id": share2.id,
                "station_name": "Station 2"
            }
        ]

        response: Response = self.app.get(f"/api/v1/members")

        self.assertEqual(response.status_code, 200)
        self.maxDiff = None
        self.assertEqual(response.json, {"members": expected})
Ejemplo n.º 4
0
    def test_jsonify(self):
        share = ShareFactory()
        MemberFactory(name="John Doe", share=share)
        MemberFactory(name="Sabrina Doe", share=share)

        expected = {
            "id": share.id,
            "name": "John Doe & Sabrina Doe",
            "archived": False,
            "bets": [],
            "station_id": share.station.id,
            "note": None,
        }

        assert share.json == expected
Ejemplo n.º 5
0
    def test_members_expired(self):
        member1 = MemberFactory.create()
        member2 = MemberFactory.create()

        station1 = StationFactory.create()
        station2 = StationFactory.create()

        valid_bet = BetFactory.create()
        expired_bet = BetFactory.create(end_date=date(2016, 1, 1))

        ShareFactory.create(members=[member1], station=station1, bets=[expired_bet])
        ShareFactory.create(members=[member2], station=station2, bets=[valid_bet])

        response: Response = self.app.get(f"/api/v1/members?active=true")

        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.json["members"]), 1)
Ejemplo n.º 6
0
    def test_members_expired(self):
        member1 = MemberFactory.create()
        member2 = MemberFactory.create()

        station1 = StationFactory.create()
        station2 = StationFactory.create()

        valid_bet = BetFactory.create()
        expired_bet = BetFactory.create(end_date=date(2016, 1, 1))

        ShareFactory.create(members=[member1], station=station1, bets=[expired_bet])
        ShareFactory.create(members=[member2], station=station2, bets=[valid_bet])

        response: Response = self.app.get(f"/api/v1/members?active=true")

        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.json["members"]), 1)
Ejemplo n.º 7
0
    def test_share_emails(self):
        member = MemberFactory.create(email="*****@*****.**")
        share = ShareFactory.create(members=[member])

        response: Response = self.app.get(f"/api/v1/shares/{share.id}/emails")
        expected = ["*****@*****.**"]

        self.assertEqual(response.status_code, 200)
        self.assertEquals(response.json, {"emails": expected})
Ejemplo n.º 8
0
    def test_delete_member(self):
        member = MemberFactory.create(name="Paul Wild")

        self.assertEqual(Member.query.count(), 1)

        response: Response = self.app.delete(f"/api/v1/members/{member.id}")

        self.assertEqual(response.status_code, 204)
        self.assertEqual(Member.query.count(), 0)
Ejemplo n.º 9
0
    def test_share_emails(self):
        member = MemberFactory.create(email="*****@*****.**")
        share = ShareFactory.create(members=[member])

        response: Response = self.app.get(f"/api/v1/shares/{share.id}/emails")
        expected = ["*****@*****.**"]

        self.assertEqual(response.status_code, 200)
        self.assertEquals(response.json, {"emails": expected})
Ejemplo n.º 10
0
    def test_delete_member(self):
        member = MemberFactory.create(name="Paul Wild")

        self.assertEqual(Member.query.count(), 1)

        response: Response = self.app.delete(f"/api/v1/members/{member.id}")

        self.assertEqual(response.status_code, 204)
        self.assertEqual(Member.query.count(), 0)
Ejemplo n.º 11
0
    def test_change_member(self):
        member = MemberFactory.create(name="Paul Wild / Paula Wilder")

        new_member_json = {"name": "Paul Wild"}
        response: Response = self.app.patch(f"/api/v1/members/{member.id}", json=new_member_json)

        updated_member = Member.get(member.id)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(updated_member.name, "Paul Wild")
        self.assertEqual(response.json["member"]["name"], "Paul Wild")
Ejemplo n.º 12
0
    def test_change_member(self):
        member = MemberFactory.create(name="Paul Wild / Paula Wilder")

        new_member_json = {"name": "Paul Wild"}
        response: Response = self.app.patch(f"/api/v1/members/{member.id}", json=new_member_json)

        updated_member = Member.get(member.id)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(updated_member.name, "Paul Wild")
        self.assertEqual(response.json["member"]["name"], "Paul Wild")
Ejemplo n.º 13
0
    def test_create_member(self):
        member1 = MemberFactory.create(name="Paul Wild / Paula Wilder")
        share = ShareFactory.create(members=[member1])

        self.assertEqual(len(share.members), 1)

        new_member_json = {"name": "Paul Wild", "share_id": share.id}
        response: Response = self.app.post(f"/api/v1/members", json=new_member_json)

        updated_share = Share.get(share.id)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(updated_share.members), 2)
Ejemplo n.º 14
0
    def test_create_member(self):
        member1 = MemberFactory.create(name="Paul Wild / Paula Wilder")
        share = ShareFactory.create(members=[member1])

        self.assertEqual(len(share.members), 1)

        new_member_json = {"name": "Paul Wild", "share_id": share.id}
        response: Response = self.app.post(f"/api/v1/members", json=new_member_json)

        updated_share = Share.get(share.id)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(updated_share.members), 2)
Ejemplo n.º 15
0
    def test_merge_other_way(self):
        share1 = ShareFactory.create()
        share2 = ShareFactory.create()

        MemberFactory.create(share=share1)
        MemberFactory.create(share=share2)
        MemberFactory.create(share=share2)

        BetFactory.create(share=share1)
        BetFactory.create(share=share1)
        BetFactory.create(share=share2)


        assert Share.query.count() == 2
        assert Bet.query.count() == 3

        merge(share2.id, share1.id)

        updated_share = Share.query.one()

        assert Share.query.count() == 1
        assert len(updated_share.members) == 3
        assert len(updated_share.bets) == 3
        assert Member.query.count() == 3
        assert Bet.query.count() == 3
Ejemplo n.º 16
0
    def test_jsonify(self):
        share = ShareFactory.create()
        member = MemberFactory(name="Mister Member",
                               email="*****@*****.**",
                               phone="+49012345",
                               share=share)

        expected = {
            "id": member.id,
            "name": "Mister Member",
            "email": "*****@*****.**",
            "phone": "+49012345",
            "share_id": share.id
        }

        assert member.json == expected
Ejemplo n.º 17
0
    def test_merge_one_way(self):
        share1 = ShareFactory.create()
        share2 = ShareFactory.create()

        MemberFactory.create(share=share1)
        MemberFactory.create(share=share2)
        MemberFactory.create(share=share2)

        BetFactory.create(share=share1)
        BetFactory.create(share=share1)
        BetFactory.create(share=share2)

        assert Share.query.count() == 2
        assert Bet.query.count() == 3

        merge(share1.id, share2.id)

        updated_share = Share.query.one()

        assert Share.query.count() == 1
        assert len(updated_share.members) == 3
        assert len(updated_share.bets) == 3
        assert Member.query.count() == 3
        assert Bet.query.count() == 3
Ejemplo n.º 18
0
    def test_name(self):
        share = ShareFactory()
        MemberFactory(name="Bob", share=share)
        MemberFactory(name="Anna", share=share)

        assert share.name == "Anna & Bob"