def test_list_versions_network(self, requests_get): """ Tests that we can handle networking errors """ mock_response = unittest.mock.Mock(spec = requests.Response) mock_response.ok = False requests_get.return_value = mock_response Server.list_versions()
def test_list_versions_default(self, requests_get): """ Tests that the list_versions method returns correctly """ mock_response = unittest.mock.Mock(spec = requests.Response) mock_response.ok = True mock_response.json.return_value = copy.deepcopy(SAMPLE_VERSIONS) requests_get.return_value = mock_response versions = Server.list_versions() requests_get.assert_called_with( 'https://launchermeta.mojang.com/mc/game/version_manifest.json', ) self.assertDictEqual( SAMPLE_VERSIONS, versions, 'Version data did not match expected', )
def test_list_versions_filter(self, requests_get): """ Tests that we can filter out versions by release type """ mock_response = unittest.mock.Mock(spec = requests.Response) requests_get.return_value = mock_response for i in range(16): requests_get.reset_mock() mock_response.ok = True mock_response.json.return_value = copy.deepcopy(SAMPLE_VERSIONS) snapshots = i & 0b1000 > 0 releases = i & 0b0100 > 0 betas = i & 0b0010 > 0 alphas = i & 0b0001 > 0 versions = Server.list_versions( snapshots = snapshots, releases = releases, betas = betas, alphas = alphas, ) remaining_types = set( [ v['type'] for v in versions['versions'] ] ) if not snapshots: self.assertNotIn( 'latest', versions['latest'], 'Snapshots not filtered from latest', ) self.assertNotIn( 'snapshot', remaining_types, 'Snapshots were not filtered out', ) if not releases: self.assertNotIn( 'release', versions['latest'], 'Release not filtered from latest', ) self.assertNotIn( 'release', remaining_types, 'Releases were not filtered out', ) if not betas: self.assertNotIn( 'old_beta', remaining_types, 'Betas were not filtered out', ) if not alphas: self.assertNotIn( 'old_alpha', remaining_types, 'Alphas were not filtered out', )