コード例 #1
0
    def test_get_user_feeds_with_auth_and_no_feeds_present(self):
        response = self.client.get('/api/my-feeds',
                                   headers=basic_auth_headers("user3", "pass"))

        resp_content = response.get_json()
        self.assertEqual(200, response.status_code)
        self.assertEqual([], resp_content)
コード例 #2
0
    def test_get_all_feeds_when_authenticated(self):
        response = self.client.get(
            '/api/feeds',
            headers=basic_auth_headers("user", "pass")
        )

        self.assertEqual(200, response.status_code)
コード例 #3
0
 def test_get_all_unread_items_case_user_follows_no_feed(self):
     response = self.client.get(
         '/api/my-feeds/new',
         headers=basic_auth_headers("user3", "pass")
     )
     self.assertIsNotNone(response)
     self.assertEqual("User 'user3' does not follow any feeds", response.get_json())
     self.assertEqual(200, response.status_code)
コード例 #4
0
 def test_refresh_single_feed_case_feed_not_exist(self):
     response = self.client.post(
         '/api/my-feeds/5/update',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response.json)
     self.assertDictEqual({'message': 'Feed id not found', 'payload': {}}, response.json)
     self.assertEqual(404, response.status_code)
コード例 #5
0
 def test_get_unread_items_from_feed_case_not_followed(self):
     response = self.client.get(
         '/api/my-feeds/1/new',
         headers=basic_auth_headers("user3", "pass")
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': 'User user3 does not follow feed 1', 'payload': {}}, response.json)
     self.assertEqual(409, response.status_code)
コード例 #6
0
 def test_get_unread_items_from_feed_case_feed_is_missing(self):
     response = self.client.get(
         '/api/my-feeds/5/new',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': 'Feed id not found', 'payload': {}}, response.json)
     self.assertEqual(404, response.status_code)
コード例 #7
0
 def test_get_read_items_from_feed_case_not_followed(self):
     response = self.client.get(
         '/api/my-feeds/1/old',
         headers=basic_auth_headers("user3", "pass")
     )
     self.assertIsNotNone(response)
     self.assertEqual("User 'user3' does not follow feed '1'", response.get_json().get("message"))
     self.assertEqual(409, response.status_code)
コード例 #8
0
 def test_read_multiple_items_missing_parameter(self):
     response = self.client.post(
         '/api/items/read-multiple',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': 'Missing request body.', 'payload': {}}, response.json)
     self.assertEqual(400, response.status_code)
コード例 #9
0
 def test_read_single_item_case_feed_is_not_followed(self):
     response = self.client.post(
         '/api/items/1/read',
         headers=basic_auth_headers("user3", "pass")
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': "User 'user3' does not follow feed '1'", 'payload': {}}, response.json)
     self.assertEqual(409, response.status_code)
コード例 #10
0
 def test_read_single_item_case_item_not_exist(self):
     response = self.client.post(
         '/api/items/5/read',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': 'Item id not found', 'payload': {}}, response.json)
     self.assertEqual(404, response.status_code)
コード例 #11
0
    def test_get_unread_items_from_feed_no_error(self):
        response = self.client.get('/api/my-feeds/1/new',
                                   headers=basic_auth_headers("user", "pass"))
        with self.app.app_context():
            unreads = Unread.query.filter_by(username='******', feed_id=1).all()
            self.assertEqual(1, len(unreads))

        self.assertEqual(200, response.status_code)
コード例 #12
0
    def test_get_all_unread_items_when_user_follows_some_feeds(self):
        response = self.client.get('/api/my-feeds/new',
                                   headers=basic_auth_headers("user", "pass"))
        with self.app.app_context():
            unreads = Unread.query.filter_by(username='******').all()
            self.assertEqual(1, len(unreads))

        self.assertEqual(200, response.status_code)
コード例 #13
0
 def test_get_user_feeds_with_auth_with_feeds(self):
     response = self.client.get(
         '/api/my-feeds',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response)
     self.assertEqual(200, response.status_code)
     self.assertListEqual([{'id': 1, 'url': 'https://feeds.feedburner.com/tweakers/mixed'}], response.get_json())
コード例 #14
0
 def test_get_user_feeds_case_auth_without_feeds(self):
     response = self.client.get(
         '/api/my-feeds',
         headers=basic_auth_headers("user3", "pass")
     )
     self.assertIsNotNone(response)
     self.assertEqual(200, response.status_code)
     self.assertEqual(0, len(response.get_json()))
コード例 #15
0
 def test_unfollow_feed_case_not_following(self):
     response = self.client.delete(
         '/api/feeds/unfollow',
         headers=basic_auth_headers("user2", "pass"),
         json={"feed_id": 1}
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': "User 'user2' does not follow feed '1'", 'payload': {}}, response.json)
     self.assertEqual(409, response.status_code)
コード例 #16
0
    def test_read_single_item_no_error(self):
        response = self.client.post('/api/items/1/read',
                                    headers=basic_auth_headers("user", "pass"))

        with self.app.app_context():
            unreads = Unread.query.filter_by(username="******", feed_id=1).all()
            self.assertEqual(0, len(unreads))

        self.assertEqual(204, response.status_code)
コード例 #17
0
 def test_follow_feed_case_already_followed(self):
     response = self.client.post(
         '/api/feeds/follow',
         headers=basic_auth_headers("user", "pass"),
         json={"feed_id": 1}
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': "User 'user' already follows feed '1'", 'payload': {}}, response.json)
     self.assertEqual(409, response.status_code)
コード例 #18
0
    def test_follow_feed_if_not_followed(self):
        response = self.client.post('/api/feeds/follow',
                                    headers=basic_auth_headers("user", "pass"),
                                    json={"feed_id": 2})
        with self.app.app_context():
            unreads = Unread.query.filter_by(username="******").all()

        self.assertEqual(3, len(unreads))
        self.assertEqual(204, response.status_code)
コード例 #19
0
 def test_follow_feed_case_feed_not_exist(self):
     response = self.client.post(
         '/api/feeds/follow',
         headers=basic_auth_headers("user", "pass"),
         json={"feed_id": 5}
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': 'Feed id not found', 'payload': {'feed_id': 5}}, response.json)
     self.assertEqual(404, response.status_code)
コード例 #20
0
 def test_get_all_feeds_authenticated(self):
     response = self.client.get(
         '/api/feeds',
         headers=basic_auth_headers("user", "pass")
     )
     self.assertIsNotNone(response)
     self.assertListEqual([{'id': 1, 'url': 'https://feeds.feedburner.com/tweakers/mixed'},
                           {'id': 2, 'url': 'http://www.nu.nl/rss/Algemeen'}], response.json)
     self.assertEqual(200, response.status_code)
コード例 #21
0
 def test_unfollow_feed_case_bad_request(self):
     response = self.client.delete(
         '/api/feeds/unfollow',
         headers=basic_auth_headers("user2", "pass"),
         json={"lorem_ipsum": 1}
     )
     self.assertIsNotNone(response)
     self.assertDictEqual({'message': "Missing 'feed_id' in request body",
                           'payload': {'lorem_ipsum': 1}}, response.json)
     self.assertEqual(400, response.status_code)
コード例 #22
0
    def test_read_multiple_items_no_error(self):
        response = self.client.post('/api/items/read-multiple',
                                    headers=basic_auth_headers(
                                        "user2", "pass"),
                                    json={'item_ids': ['3', '4']})

        with self.app.app_context():
            unreads = Unread.query.filter_by(username="******", feed_id=2).all()
            self.assertEqual(0, len(unreads))

        self.assertEqual(204, response.status_code)
コード例 #23
0
    def test_unfollow_feed_case_followed(self):
        response = self.client.delete(
            '/api/feeds/unfollow',
            headers=basic_auth_headers("user2", "pass"),
            json={"feed_id": 2}
        )
        self.assertIsNotNone(response)
        with self.app.app_context():
            unread_list = Unread.query.filter_by(username="******").all()

        self.assertEqual(0, len(unread_list))
        self.assertEqual(204, response.status_code)
コード例 #24
0
    def test_refresh_single_feed_no_error(self, scrape_single_task, scraper):
        scraper.parse.return_value = [FeedItem(id=5), FeedItem(id=6)]
        scrape_single_task.return_value = {}

        response = self.client.post('/api/my-feeds/1/update',
                                    headers=basic_auth_headers("user", "pass"))

        self.assertEqual(200, response.status_code)
        self.assertTrue(
            scraper.persist.called_with([FeedItem(id=5),
                                         FeedItem(id=6)]))
        self.assertTrue(scrape_single_task.delay.called)
コード例 #25
0
    def test_refresh_all_user_feeds_successfully(self, scrape_single_task, scraper):
        scraper.parse.return_value = [FeedItem(id=5), FeedItem(id=6)]
        scrape_single_task.return_value = {}

        response = self.client.post(
            '/api/my-feeds/update',
            headers=basic_auth_headers("user", "pass")
        )
        self.assertIsNotNone(response.json)
        self.assertListEqual([{'feed_id': '1', 'status': 'SUCCESSFUL'}], response.json)
        self.assertEqual(200, response.status_code)
        self.assertTrue(scraper.persist.called_with([FeedItem(id=5), FeedItem(id=6)]))
        self.assertTrue(scrape_single_task.delay.called)
コード例 #26
0
    def test_refresh_single_feed_successfully(self, scrape_single_task, scraper):
        scraper.parse.return_value = [FeedItem(id=5), FeedItem(id=6)]
        scrape_single_task.return_value = {}

        response = self.client.post(
            '/api/my-feeds/1/update',
            headers=basic_auth_headers("user", "pass")
        )
        self.assertIsNotNone(response.json)
        self.assertDictEqual({'message': 'Update successful'}, response.json)
        self.assertEqual(200, response.status_code)
        self.assertTrue(scraper.persist.called_with([FeedItem(id=5), FeedItem(id=6)]))
        self.assertTrue(scrape_single_task.delay.called)
コード例 #27
0
    def test_get_all_read_items_case_user_follows_some_feeds(self):
        response = self.client.get(
            '/api/my-feeds/old',
            headers=basic_auth_headers("user", "pass")
        )
        self.assertIsNotNone(response)
        with self.app.app_context():
            unread_list = Unread.query.filter_by(username='******').all()
            self.assertEqual(1, len(unread_list))
            self.assertEqual(1, unread_list[0].id)
            self.assertEqual("user", unread_list[0].username)
            self.assertEqual(1, unread_list[0].item_id)
            self.assertEqual(1, unread_list[0].feed_id)

        self.assertEqual(200, response.status_code)
コード例 #28
0
    def test_get_unread_items_from_feed_successfully(self):
        response = self.client.get(
            '/api/my-feeds/1/new',
            headers=basic_auth_headers("user", "pass")
        )
        self.assertIsNotNone(response)
        with self.app.app_context():
            unread_list = Unread.query.filter_by(username='******', feed_id=1).all()
            self.assertEqual(1, len(unread_list))
            self.assertEqual(1, len(unread_list))
            self.assertEqual(1, unread_list[0].id)
            self.assertEqual("user", unread_list[0].username)
            self.assertEqual(1, unread_list[0].item_id)
            self.assertEqual(1, unread_list[0].feed_id)

        self.assertEqual(200, response.status_code)
コード例 #29
0
    def test_follow_feed_case_not_followed(self):
        response = self.client.post(
            '/api/feeds/follow',
            headers=basic_auth_headers("user", "pass"),
            json={"feed_id": 2}
        )
        self.assertIsNotNone(response)
        with self.app.app_context():
            unread_list = Unread.query.filter_by(username="******").all()

        self.assertEqual(3, len(unread_list))
        list_ids = [1, 3, 4]
        for element in unread_list:
            self.assertIn(element.id, list_ids)
            self.assertEqual("user", element.username)
            self.assertIn(element.item_id, list_ids)
            self.assertIn(element.feed_id, [1, 2, 2])
        self.assertEqual(204, response.status_code)
コード例 #30
0
 def test_unfollow_feed_if_feed_not_exist(self):
     response = self.client.delete('/api/feeds/unfollow',
                                   headers=basic_auth_headers(
                                       "user", "pass"),
                                   json={"feed_id": 5})
     self.assertEqual(404, response.status_code)