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')
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')
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')
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')
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', ), ] )