Ejemplo n.º 1
0
    def test_get_forge_ver_bad_mc(self, versions):
        """
        Tests that we handle when the given Minecraft version is bad
        """

        versions.return_value = []

        get_forge_version('1.8.9', '10.10.10.10')
Ejemplo n.º 2
0
    def test_get_forge_ver_network1(self, versions, requests_get):
        """
        Tests that we handle when theres a network problem getting the list page
        """

        versions.return_value = ['1.8.9']

        mock_response = unittest.mock.Mock(spec = requests.Response)
        mock_response.ok = False

        requests_get.return_value = mock_response

        get_forge_version('1.8.9', '20.20.20.20')
Ejemplo n.º 3
0
    def test_get_forge_ver_bad_forge(self, versions, requests_get):
        """
        Tests that we handle when the given Forge version is bad
        """

        versions.return_value = ['1.8.9']

        mock_response = unittest.mock.Mock(spec = requests.Response)
        mock_response.ok      = True
        mock_response.content = SAMPLE_DOWNLOADS_PAGE.format('LATEST')

        requests_get.return_value = mock_response

        get_forge_version('1.8.9', '20.20.20.20')
Ejemplo n.º 4
0
    def test_get_forge_ver_network2(self, versions, requests_get):
        """
        Tests that we handle when theres a network problem getting the jar
        """

        versions.return_value = ['1.8.9']

        mock_list_response = unittest.mock.Mock(spec = requests.Response)
        mock_list_response.ok      = True
        mock_list_response.content = SAMPLE_DOWNLOADS_PAGE.format('LATEST')

        mock_jar_response = unittest.mock.Mock(spec = requests.Response)
        mock_jar_response.ok = False

        requests_get.side_effect = [
            mock_list_response,
            mock_jar_response,
        ]

        get_forge_version('1.8.9', '10.10.10.10')
Ejemplo n.º 5
0
    def _do_forge_version(self, path = None):
        root       = path if path is not None else os.getcwd()
        version_id = '1.8.9'

        with unittest.mock.patch('mymcadmin.forge.get_forge_mc_versions') as forge_versions, \
             unittest.mock.patch('requests.get') as requests_get, \
             unittest.mock.patch('mymcadmin.utils.download_file') as download_file:
            forge_versions.return_value = ['1.8.9']

            mock_version_response = unittest.mock.Mock(spec = requests.Response)
            mock_version_response.ok      = True
            mock_version_response.content = SAMPLE_DOWNLOADS_PAGE.format('LATEST')

            mock_inst_jar_response = unittest.mock.Mock(spec = requests.Response)
            mock_inst_jar_response.ok = True

            mock_uni_jar_response = unittest.mock.Mock(spec = requests.Response)
            mock_uni_jar_response.ok = True

            requests_get.side_effect = [
                mock_version_response,
                mock_inst_jar_response,
                mock_uni_jar_response,
            ]

            inst_jar, uni_jar = get_forge_version(
                version_id,
                '10.10.10.10',
                path = path,
            )

            self.assertEqual(
                os.path.join(root, 'forge-1.8.9-10.10.10.10-installer.jar'),
                inst_jar,
                'Installer path did not match expected',
            )

            self.assertEqual(
                os.path.join(root, 'forge-1.8.9-10.10.10.10-universal.jar'),
                uni_jar,
                'Jar path did not match expected',
            )

            # pylint: disable=line-too-long
            requests_get.assert_has_calls(
                [
                    unittest.mock.call(
                        'http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.8.9.html',
                    ),
                    unittest.mock.call(
                        'http://example.com/10.10.10.10/forge-1.8.9-10.10.10.10-installer.jar',
                        stream = True,
                    ),
                    unittest.mock.call(
                        'http://example.com/10.10.10.10/forge-1.8.9-10.10.10.10-universal.jar',
                        stream = True,
                    ),
                ]
            )
            # pylint: enable=line-too-long

            download_file.assert_has_calls(
                [
                    unittest.mock.call(
                        mock_inst_jar_response,
                        inst_jar,
                        '943a702d06f34599aee1f8da8ef9f7296031d699',
                    ),
                    unittest.mock.call(
                        mock_uni_jar_response,
                        uni_jar,
                        '943a702d06f34599aee1f8da8ef9f7296031d699',
                    ),
                ]
            )