Beispiel #1
0
    def test_check_warning(self, mock_docker, mock__call_pypi_json_api):
        mock_docker.return_value = MockDockerClient()
        expected_list_output = [{
            'name': 'six',
            'version': '1.2.3',
            'latest_version': '1.2.4',
        }]
        expected_dependency_info = {
            'six': {
                'installed_version': '1.2.3',
                'installed_version_time': '2018-05-10T15:00:00',
                'latest_version': '1.2.4',
                'current_time': '2018-06-13T16:13:33.744591',
                'latest_version_time': '2018-06-13T18:29:51',
                'is_latest': False
            }
        }

        mock_datetime = mock.Mock()
        mock_now = mock.Mock()
        mock_now.isoformat.return_value = '2018-06-13T16:13:33.744591'
        mock_datetime.datetime.now.return_value = mock_now

        patch = mock.patch('pip_checker.datetime', mock_datetime)

        mock__call_pypi_json_api.return_value = {
            'releases': {
                '1.2.4': [
                    {
                        'upload_time': '2018-06-13T18:29:51',
                    },
                ],
                '1.2.3': [
                    {
                        'upload_time': '2018-05-10T15:00:00',
                    }
                ],
            },
        }

        with patch:
            check_result = pip_checker.check(
                pip_command=[
                    self._fake_pip_path,
                    '--check-returncode=1',
                    '--check-output=bad-check',
                    '--freeze-output=six==1.2.3\n',
                    '--list-output={}'.format(
                        json.dumps(expected_list_output))
                ],
                packages=['six'])
        expected_check_result = pip_checker.PipCheckResult(
                packages=['six'],
                result_type=pip_checker.PipCheckResultType.CHECK_WARNING,
                result_text='bad-check',
                dependency_info=expected_dependency_info)

        self.assertEqual(
            check_result,
            expected_check_result)
Beispiel #2
0
    def test_success_with_clean(self, mock__call_pypi_json_api):
        expected_list_output = [{
            'name': 'six',
            'version': '1.2.3',
            'latest_version': '1.2.4',
        }]
        expected_dependency_info = {
            'six': {
                'installed_version': '1.2.3',
                'installed_version_time': '2018-05-10T15:00:00',
                'latest_version': '1.2.4',
                'current_time': '2018-06-13T16:13:33.744591',
                'latest_version_time': '2018-06-13T18:29:51',
                'is_latest': False
            }
        }

        mock_datetime = mock.Mock()
        mock_now = mock.Mock()
        mock_now.isoformat.return_value = '2018-06-13T16:13:33.744591'
        mock_datetime.datetime.now.return_value = mock_now

        patch = mock.patch('pip_checker.datetime', mock_datetime)

        mock__call_pypi_json_api.return_value = {
            'releases': {
                '1.2.4': [
                    {
                        'upload_time': '2018-06-13T18:29:51',
                    },
                ],
                '1.2.3': [{
                    'upload_time': '2018-05-10T15:00:00',
                }],
            },
        }

        with patch:
            check_result = pip_checker.check(pip_command=[
                self._fake_pip_path, '--expected-install-args=-U,six',
                '--uninstall-returncode=0', '--freeze-output=six==1.2.3\n',
                '--list-output={}'.format(json.dumps(expected_list_output))
            ],
                                             packages=['six'],
                                             clean=True)
        expected_check_result = pip_checker.PipCheckResult(
            packages=['six'],
            result_type=pip_checker.PipCheckResultType.SUCCESS,
            result_text=None,
            dependency_info=expected_dependency_info)

        self.assertEqual(check_result, expected_check_result)
Beispiel #3
0
 def test_install_failure(self):
     check_result = pip_checker.check(pip_command=[
         self._fake_pip_path, '--expected-install-args=-U,six',
         '--install-returncode=1', '--install-output=bad-install'
     ],
                                      packages=['six'])
     self.assertEqual(
         check_result,
         pip_checker.PipCheckResult(
             packages=['six'],
             result_type=pip_checker.PipCheckResultType.INSTALL_ERROR,
             result_text='bad-install',
             dependency_info=None))