Пример #1
0
    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()
Пример #2
0
    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',
        )
Пример #3
0
    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',
                )