aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2019-09-16 00:16:49 +0200
committerGravatar Johannes Christ <[email protected]>2019-09-16 00:16:49 +0200
commitfd85c12774af69236fff304676847a2c1a31dbe2 (patch)
treec9892845a459be42882ea7b2a307e07d5fbb512b /pydis_site/apps
parentFix a bug where GitHub API rate limit could crash Home. (diff)
Add test cases for `TypeError` fallbacks.
Diffstat (limited to 'pydis_site/apps')
-rw-r--r--pydis_site/apps/home/tests/test_repodata_helpers.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pydis_site/apps/home/tests/test_repodata_helpers.py b/pydis_site/apps/home/tests/test_repodata_helpers.py
index 61b8e034..71bd4f2d 100644
--- a/pydis_site/apps/home/tests/test_repodata_helpers.py
+++ b/pydis_site/apps/home/tests/test_repodata_helpers.py
@@ -97,3 +97,36 @@ class TestRepositoryMetadataHelpers(TestCase):
self.assertIsNotNone(success_data.json_data)
self.assertIsNone(fail_data.json_data)
+
+ @mock.patch('requests.get')
+ def test_falls_back_to_database_on_error(self, mock_get: mock.MagicMock):
+ """Tests that fallback to the database is performed when we get garbage back."""
+ repo_data = RepositoryMetadata(
+ repo_name="python-discord/site",
+ description="testrepo",
+ forks=42,
+ stargazers=42,
+ language="English",
+ last_updated=timezone.now() - timedelta(seconds=HomeView.repository_cache_ttl + 1),
+ )
+ repo_data.save()
+
+ mock_get.return_value.json.return_value = ['garbage']
+
+ metadata = self.home_view._get_repo_data()
+ [item] = metadata
+ self.assertEqual(item, repo_data)
+
+ @mock.patch('requests.get')
+ def test_falls_back_to_database_on_error_without_entries(self, mock_get: mock.MagicMock):
+ """Tests that fallback to the database is performed when we get garbage back."""
+ mock_get.return_value.json.return_value = ['garbage']
+
+ metadata = self.home_view._get_repo_data()
+ self.assertEquals(len(metadata), len(self.home_view.repos))
+ for item in metadata:
+ with self.subTest(item=item):
+ self.assertEqual(item.description, "Not available.")
+ self.assertEqual(item.forks, 999)
+ self.assertEqual(item.stargazers, 999)
+ self.assertEqual(item.language, "Python")