コード例 #1
0
    def test_get_current_branch__detached_head_state(self, log_warning_mock):
        self.assertIsNotNone(sourcecontrol.Git().get_current_branch())

        p = subprocess.Popen(['git', 'rev-parse', 'HEAD'],
                             stdout=subprocess.PIPE)
        stdout, _ = p.communicate()
        commit_of_head = stdout.decode().strip()

        p = subprocess.Popen(['git', 'checkout', commit_of_head],
                             stdout=subprocess.PIPE)
        p.communicate()

        self.assertEqual('default', sourcecontrol.Git().get_current_branch())
コード例 #2
0
    def test_fetch_remote_branches__git_cmd_failed(self, _run_cmd_mock):
        _run_cmd_mock.return_value = '', '', 1
        actual = sourcecontrol.Git().fetch_remote_branches('develop')

        _run_cmd_mock.assert_called_once_with(['git', 'fetch', 'develop'],
                                              handle_exitcode=False)
        self.assertFalse(actual)
コード例 #3
0
 def test_error_handler_for_exit_code_127(self, mock_exec_cmd):
     stdout = ""
     stderr = "git not installed"
     exit_code = 127
     mock_exec_cmd.return_value = stdout, stderr, exit_code
     self.assertRaises(NoSourceControlError,
                       sourcecontrol.Git().get_version_label)
コード例 #4
0
    def test_set_up_ignore_file_file_exists(self):
        with open('.gitignore', 'w') as f:
            f.write('line1\n')
            f.write('line2\n')

        sourcecontrol.Git().set_up_ignore_file()

        with open('.gitignore', 'r') as f:
            f = f.readlines()
            self.assertEqual(f[0], 'line1\n')
            self.assertEqual(f[1], 'line2\n')
コード例 #5
0
    def test_verify_url_is_a_codecommit_url__valid_urls(self):
        valid_urls = [
            'https://git-codecommit.us-east-1.amazonaws.com',
            'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/github-tests-test-1',
            'https://git-codecommit.us-east-1.amazonaws.com.cn/v1/repos/github-tests-test-1',
            'ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/github-tests-test-1',
            'git-codecommit..amazonaws.com',
            'git-codecommit.us-east-1.amazonaws.com/v1/repos/github-tests-test-1',
        ]

        for url in valid_urls:
            sourcecontrol.Git().verify_url_is_a_codecommit_url(url)
コード例 #6
0
    def test_setup_codecommit_cred_config__non_windows(self, _run_cmd_mock):
        sourcecontrol.Git().setup_codecommit_cred_config()

        _run_cmd_mock.assert_has_calls([
            mock.call([
                'git', 'config', '--local', '--replace-all',
                'credential.UseHttpPath', 'true'
            ]),
            mock.call([
                'git', 'config', '--local', '--replace-all',
                'credential.helper', '!aws codecommit credential-helper $@'
            ])
        ])
コード例 #7
0
    def test_get_current_repository__git_cmd_failed(
        self,
        get_current_branch_mock,
        _run_cmd_mock,
    ):
        get_current_branch_mock.return_value = 'develop'
        _run_cmd_mock.return_value = '', 'error message', 1
        actual = sourcecontrol.Git().get_current_repository()

        get_current_branch_mock.assert_called_once_with()
        _run_cmd_mock.assert_called_once_with(
            ['git', 'config', '--get', 'branch.develop.remote'],
            handle_exitcode=False)
        self.assertIsNone(actual)
コード例 #8
0
    def test_get_current_repository_git_cmd_succeeded(
        self,
        get_current_branch_mock,
        _run_cmd_mock,
    ):
        get_current_branch_mock.return_value = 'develop'
        _run_cmd_mock.return_value = 'develop-remote', '', 0
        actual = sourcecontrol.Git().get_current_repository()

        get_current_branch_mock.assert_called_once_with()
        _run_cmd_mock.assert_called_once_with(
            ['git', 'config', '--get', 'branch.develop.remote'],
            handle_exitcode=False)
        self.assertEqual('develop-remote', actual)
コード例 #9
0
    def test_verify_url_is_a_codecommit_url__invalid_urls(self):
        invalid_urls = [
            'https://github.us-east-1.amazonaws.com',
            'ssh://git-codecommit.us-east-1.com/v1/repos/github-tests-test-1',
            'https://github.com/rahulrajaram/dummy_repository.git',
            'https://[email protected]/tutorials/tutorials.git.bitbucket.org.git',
            'github..amazonaws.com',
        ]

        for url in invalid_urls:
            with self.assertRaises(NoSourceControlError) as context_manager:
                sourcecontrol.Git().verify_url_is_a_codecommit_url(url)

            self.assertEqual(
                'Could not connect to repository located at {}'.format(url),
                context_manager.exception.message)
コード例 #10
0
 def test_get_current_branch(self):
     self.assertEqual('master', sourcecontrol.Git().get_current_branch())
コード例 #11
0
 def test_get_current_branch_detached_head(self):
     subprocess.call(['git', 'checkout', 'HEAD^'])
     self.assertEqual(sourcecontrol.Git().get_current_branch(), 'default')
コード例 #12
0
 def test_error_handler_for_exit_code_128(self, mock_exec_cmd):
     stdout = ""
     stderr = "Not a valid object name HEAD"
     exit_code = 128
     mock_exec_cmd.return_value = stdout, stderr, exit_code
     self.assertRaises(CommandError, sourcecontrol.Git().get_version_label)
コード例 #13
0
 def test_set_up_ignore_no_file(self):
     self.assertFalse(os.path.isfile('.gitignore'))
     sourcecontrol.Git().set_up_ignore_file()
     self.assertTrue(os.path.isfile('.gitignore'))
コード例 #14
0
 def test_get_version_label(self):
     self.assertTrue(
         sourcecontrol.Git().get_version_label().startswith('app-v1-'))
コード例 #15
0
 def test_get_message(self):
     self.assertEqual(sourcecontrol.Git().get_message(), 'Hello')
コード例 #16
0
 def test_do_zip(self):
     sourcecontrol.Git().do_zip(os.getcwd() + os.path.sep + 'file.zip')
コード例 #17
0
 def test_error_handler_for_non_handled_exit_code(self, mock_exec_cmd):
     stdout = ""
     stderr = "git not installed"
     exit_code = 99999
     mock_exec_cmd.return_value = stdout, stderr, exit_code
     self.assertRaises(CommandError, sourcecontrol.Git().get_version_label)
コード例 #18
0
 def test_get_name(self):
     self.assertEqual(sourcecontrol.Git().get_name(), 'git')