Esempio n. 1
0
    def test_download_server_bad_sha(self, get_version_info, requests_get, mock_open):
        """
        Tests that we handle when the jar download has an incorrect SHA
        """

        get_version_info.return_value = {
            'id':        'test',
            'downloads': {
                'server': {
                    'url':  'http://example.com/mc/test/server',
                    'sha1': 'deadbeef',
                },
            },
        }

        mock_response = unittest.mock.Mock(spec = requests.Response)
        mock_response.ok = True
        mock_response.iter_content.return_value = io.BytesIO(
            'Hello, world!'.encode(),
        )

        requests_get.return_value = mock_response

        file_stream = io.BytesIO()

        mock_open.return_value = mock_open
        mock_open.__enter__.return_value = file_stream

        Server.download_server_jar(
            'test',
            path = 'home',
        )
Esempio n. 2
0
    def test_download_server_no_server(self, get_version_info):
        """
        Tests that we handle then there's no server download for this version
        """

        get_version_info.return_value = {
            'id':        'test',
            'downloads': {},
        }

        Server.download_server_jar('test')
Esempio n. 3
0
    def test_download_server_response(self, get_version_info, requests_get):
        """
        Tests that we handle bad responses while downloading
        """

        get_version_info.return_value = SAMPLE_VERSION

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

        requests_get.return_value = mock_response

        Server.download_server_jar('my_release')
Esempio n. 4
0
    def _do_server_download_test(self, target, path):
        root = path if path is not None else os.getcwd()

        with unittest.mock.patch('mymcadmin.server.Server.get_version_info') as get_version_info, \
             unittest.mock.patch('requests.get') as requests_get, \
             unittest.mock.patch('builtins.open') as mock_open:
            get_version_info.return_value = SAMPLE_VERSION

            mock_response = unittest.mock.Mock(spec = requests.Response)
            mock_response.ok = True
            mock_response.iter_content.return_value = io.BytesIO(
                'Hello, world!'.encode(),
            )

            requests_get.return_value = mock_response

            file_stream = io.BytesIO()

            mock_open.return_value = mock_open
            mock_open.__enter__.return_value = file_stream

            jar_path = Server.download_server_jar(
                version_id = target,
                path       = path,
            )

            self.assertEqual(
                os.path.join(root, 'minecraft_server_my_release.jar'),
                jar_path,
                'Jar file path did not match expected',
            )

            mock_open.assert_called_with(
                jar_path,
                'wb',
            )

            get_version_info.assert_called_with(target)

            requests_get.assert_called_with(
                'http://example.com/download/myrelease/server',
                stream = True,
            )