Ejemplo n.º 1
0
    def setUp(self):
        db.drop_all()
        db.create_all()

        self.success = {'code': 200}
        self.success_create = {'code': 201}
        self.not_json = {'code': 400, 'error': 'post type must be json'}
        self.field_not_complete = {'code': 400, 'error': 'fields not complete'}
        self.error_need_login = {'code': 403, 'error': 'need to login'}
        self.error_need_csrf = {'code': 400, 'error': 'needs csrf token'}
        self.error_wrong_csrf = {'code': 400, 'error': 'wrong csrf token'}

        user = User.create('*****@*****.**', 'strong_password')
        another_user = User.create('*****@*****.**', 'strong_password')
        event = Event.create('dinner', datetime(2017, 7, 7, 18, 30, 0))
        another_event = Event.create('lunch', datetime(2017, 7, 7, 18, 30, 0))
        self.user_id = user.user_id
        self.event_id = event.event_id
        self.another_user_id = another_user.user_id
        self.another_event_id = another_event.event_id
        user.events.append(event)
        another_user.events.append(another_event)
        db.session.add(user)
        db.session.add(another_user)
        db.session.commit()
Ejemplo n.º 2
0
    def test_delete_with_events(self):
        with self.app.test_client() as client:
            self.login(client)

            user = User.query.filter_by(user_id=self.user_id).first()
            user.events = [
                Event.create('dinner', datetime.now()),
                Event.create('lunch', datetime.now()),
                Event.create('breakfast', datetime.now()),
            ]
            db.session.commit()
            self.assertEqual(len(User.query.all()), 1)
            self.assertEqual(len(Event.query.all()), 3)

            response = client.post('/api/users/delete', json={
                'csrf_token': self.csrf_token
            })
            self.assertEqual(response.json, self.success)
            # logout check
            self.assertFalse('user_id' in session)
            self.assertTrue('csrf_token' in session)

            self.assertEqual(len(User.query.all()), 0)
            self.assertEqual(len(Event.query.all()), 0)
            self.assertIsNone(User.query.filter_by(user_id=self.user_id).first())
Ejemplo n.º 3
0
    def test_year_month_query(self):
        month_6 = [
            Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 6, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 7, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 8, 18, 30, 0))
        ]
        month_7 = [
            Event.create('dinner', datetime(2018, 7, 5, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 6, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 7, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 8, 18, 30, 0))
        ]

        event_id6 = set([event.event_id for event in month_6])

        user = User.query.filter_by(user_id=self.user_id).first()
        user.events += month_6
        user.events += month_7
        db.session.commit()

        self.assertEqual(len(Event.query.with_parent(user).all()), 8)
        user = User.query.filter_by(user_id=self.user_id).first()
        events = Event.query.with_parent(user).filter(
            and_(
                extract('year', Event.event_time) == 2018,
                extract('month', Event.event_time) == 6,
            )).all()

        self.assertEqual(len(events), 4)
        self.assertSetEqual(event_id6,
                            set([event.event_id for event in events]))
Ejemplo n.º 4
0
    def setUp(self):
        db.create_all()

        user = User.create('*****@*****.**', 'strong_password')
        user2 = User.create('*****@*****.**', 'strong_password')
        event = Event.create('dinner', datetime(2018, 7, 5, 18, 30, 0))
        event2 = Event.create('dinner', datetime(2018, 7, 5, 18, 30, 0))
        user.events.append(event)
        user2.events.append(event2)
        self.user_id = user.user_id
        self.user_id2 = user2.user_id
        self.event_id = event.event_id
        self.event_id2 = event2.event_id
        db.session.add(user)
        db.session.add(user2)
        db.session.commit()
Ejemplo n.º 5
0
    def test_modify(self):
        user = User.query.filter_by(user_id=self.user_id).first()
        event_name, event_time = 'dinner', datetime(2018, 6, 5, 18, 30, 0)
        another_event, another_time = 'lunch', datetime(2018, 10, 7, 18, 30, 0)
        event = Event.create(event_name, event_time)
        event_id = event.event_id
        user.events.append(event)
        db.session.commit()

        user = User.query.filter_by(user_id=self.user_id).first()
        query_event = Event.query.with_parent(user).filter_by(
            event_id=event_id).first()
        query_event.event_name = another_event
        db.session.commit()

        user = User.query.filter_by(user_id=self.user_id).first()
        query_event = Event.query.with_parent(user).filter_by(
            event_id=event_id).first()
        self.assertEqual(query_event.event_name, another_event)

        user = User.query.filter_by(user_id=self.user_id).first()
        query_event = Event.query.with_parent(user).filter_by(
            event_id=event_id).first()
        query_event.event_time = another_time
        db.session.commit()

        user = User.query.filter_by(user_id=self.user_id).first()
        query_event = Event.query.with_parent(user).filter_by(
            event_id=event_id).first()
        self.assertEqual(query_event.event_time, another_time)
Ejemplo n.º 6
0
    def test_add_event(self):
        user = User.query.filter_by(user_id=self.user_id).first()
        event = Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0))
        user.events.append(event)
        db.session.commit()

        user = User.query.filter_by(user_id=self.user_id).first()
        self.assertEqual(len(Event.query.with_parent(user).all()), 1)
        self.assertIs(type(Event.query.with_parent(user).all()), list)
Ejemplo n.º 7
0
    def test_get_events(self):
        with self.app.test_client() as client:
            self.login(client)

            user = User.query.filter_by(user_id=self.user_id).first()
            user.events += [
                Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 6, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 7, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 8, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 7, 6, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 7, 7, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 7, 8, 18, 30, 0))
            ]
            db.session.commit()
            event = Event.create('dinner', datetime(2018, 8, 5, 18, 30, 0))
            event_id = event.event_id

            user = User.query.filter_by(user_id=self.user_id).first()
            user.events += [event]
            event = Event.query.filter_by(event_id=event_id).first()
            event.tags = [
                Tag(tag_name='important', activated=True),
                Tag(tag_name='finished', activated=False)
            ]
            db.session.commit()

            response = client.post('/api/events/user',
                                   json={
                                       'year': 2018,
                                       'month': 7,
                                       'csrf_token': self.csrf_token
                                   })
            self.assertEqual(len(response.json['events']), 3)
            response = client.post('/api/events/user',
                                   json={
                                       'year': 2018,
                                       'month': 8,
                                       'csrf_token': self.csrf_token
                                   })
            self.assertEqual(len(response.json['events']), 1)
            tags = [
                {
                    'tag_name': 'finished',
                    'activated': False
                },
                {
                    'tag_name': 'important',
                    'activated': True
                },
            ]
            self.assertEqual(response.json['events'][0]['tags'], tags)
Ejemplo n.º 8
0
    def test_delete_user_and_events(self):
        self.assertEqual(len(User.query.all()), 0)

        user = User.create('*****@*****.**', 'strong_password')
        user.events = [
            Event.create('dinner', datetime.now()),
            Event.create('lunch', datetime.now()),
            Event.create('breakfast', datetime.now()),
        ]
        user_id = user.user_id
        db.session.add(user)
        db.session.commit()
        self.assertEqual(len(User.query.all()), 1)
        self.assertEqual(len(Event.query.all()), 3)

        user = User.query.filter_by(user_id=user_id).first()
        db.session.delete(user)
        db.session.commit()
        self.assertEqual(len(User.query.all()), 0)
        self.assertEqual(len(Event.query.all()), 0)
Ejemplo n.º 9
0
    def test_delete_event(self):
        with self.app.test_client() as client:
            self.login(client)

            user = User.query.filter_by(user_id=self.user_id).first()
            user.events += [
                Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 6, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 7, 18, 30, 0)),
                Event.create('dinner', datetime(2018, 6, 8, 18, 30, 0)),
            ]
            event_id = user.events[0].event_id
            self.assertEqual(len(Event.query.with_parent(user).all()), 5)
            db.session.commit()

            response = client.post('/api/events/delete',
                                   json={
                                       'event_id': event_id,
                                       'csrf_token': self.csrf_token
                                   })
            user = User.query.filter_by(user_id=self.user_id).first()
            self.assertEqual(response.json, self.success)
            self.assertEqual(len(Event.query.with_parent(user).all()), 4)
Ejemplo n.º 10
0
    def setUp(self):
        db.drop_all()
        db.create_all()

        self.success = {'code': 200}
        self.success_create = {'code': 201}
        self.not_json = {'code': 403, 'error': 'post type must be json'}
        self.field_not_complete = {'code': 403, 'error': 'fields not complete'}
        self.wrong_email = {'code': 403, 'error': "format check of email failed: got today's dinner"}

        user = User.create('*****@*****.**', 'strong_password')
        event = Event.create('dinner', datetime.now())
        self.user_id = user.user_id
        self.event_id = event.event_id
        user.events.append(event)
        db.session.add(user)
        db.session.commit()
Ejemplo n.º 11
0
    def test_delete(self):
        user = User.query.filter_by(user_id=self.user_id).first()
        self.assertEqual(len(Event.query.with_parent(user).all()), 0)

        event_name, event_time = 'dinner', datetime(2018, 6, 5, 18, 30, 0)
        event = Event.create(event_name, event_time)
        event_id = event.event_id
        user.events.append(event)
        db.session.commit()

        self.assertEqual(len(Event.query.with_parent(user).all()), 1)

        query_event = Event.query.with_parent(user).filter_by(
            event_id=event_id).first()
        db.session.delete(query_event)
        db.session.commit()

        self.assertEqual(len(Event.query.with_parent(user).all()), 0)
Ejemplo n.º 12
0
    def test_modify_event_name(self):
        with self.app.test_client() as client:
            self.login(client)

            user = User.query.filter_by(user_id=self.user_id).first()
            event = Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0))
            event_id = event.event_id
            user.events.append(event)
            db.session.commit()
            response = client.post('/api/events/update', json={
                'event_id': event_id,
                'update_fields': {
                    'event_name': 'lunch'
                },
                'csrf_token': self.csrf_token
            })
            self.assertEqual(response.json, self.success)
            event = Event.query.filter_by(event_id=event_id).first()
            self.assertEqual(event.event_name, 'lunch')
Ejemplo n.º 13
0
    def test_add_events(self):
        user = User.query.filter_by(user_id=self.user_id).first()
        user.events = [
            Event.create('dinner', datetime(2018, 6, 5, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 6, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 7, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 6, 8, 18, 30, 0))
        ]
        db.session.commit()
        user = User.query.filter_by(user_id=self.user_id).first()
        self.assertEqual(len(Event.query.with_parent(user).all()), 4)
        self.assertIs(type(Event.query.with_parent(user).all()), list)

        user = User.query.filter_by(user_id=self.user_id).first()
        user.events += [
            Event.create('dinner', datetime(2018, 7, 5, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 6, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 7, 18, 30, 0)),
            Event.create('dinner', datetime(2018, 7, 8, 18, 30, 0))
        ]
        self.assertEqual(len(Event.query.with_parent(user).all()), 8)
        self.assertIs(type(Event.query.with_parent(user).all()), list)