Exemple #1
0
 def test_empty_branch_type_list_raises_usage(self):
     create_git_repo(self)
     gitflow = GitFlow().init()
     self.assertRaises(Usage, gitflow.list, 'feature', 'name', False, False)
     self.assertRaises(Usage, gitflow.list, 'release', 'version', False, False)
     self.assertRaises(Usage, gitflow.list, 'hotfix', 'version', False, False)
     self.assertRaises(Usage, gitflow.list, 'support', 'version', False, False)
Exemple #2
0
    def test_detect_custom_branch_types(self):
        create_git_repo(self)
        # Declare a custom branch type inline
        class FooBarManager(BranchManager):
            identifier = 'foobar'
            DEFAULT_PREFIX = 'xyz/'

        gitflow = GitFlow()
        self.assertIn('foobar', gitflow.managers)
Exemple #3
0
    def test_detect_branch_types(self):
        create_git_repo(self)
        gitflow = GitFlow()

        # The types that "ship" with git-flow
        self.assertIn('feature', gitflow.managers)
        self.assertIn('release', gitflow.managers)
        self.assertIn('hotfix', gitflow.managers)
        self.assertIn('support', gitflow.managers)
Exemple #4
0
    def test_detect_branch_types(self):
        create_git_repo(self)
        gitflow = GitFlow()

        # The types that "ship" with git-flow
        self.assertIn('feature', gitflow.managers)
        self.assertIn('release', gitflow.managers)
        self.assertIn('hotfix', gitflow.managers)
        self.assertIn('support', gitflow.managers)
Exemple #5
0
    def test_detect_custom_branch_types(self):
        create_git_repo(self)

        # Declare a custom branch type inline
        class FooBarManager(BranchManager):
            identifier = 'foobar'
            DEFAULT_PREFIX = 'xyz/'

        gitflow = GitFlow()
        self.assertIn('foobar', gitflow.managers)
Exemple #6
0
 def test_empty_branch_type_list_raises_usage(self):
     create_git_repo(self)
     gitflow = GitFlow().init()
     self.assertRaises(Usage, gitflow.list, 'feature', 'name', False, False)
     self.assertRaises(Usage, gitflow.list, 'release', 'version', False,
                       False)
     self.assertRaises(Usage, gitflow.list, 'hotfix', 'version', False,
                       False)
     self.assertRaises(Usage, gitflow.list, 'support', 'version', False,
                       False)
Exemple #7
0
    def test_create(self):
        create_git_repo(self)
        gitflow = GitFlow()

        self.assertEquals([], self.repo.branches)

        gitflow.init()

        self.assertEquals(['develop', 'master'],
                          [b.name for b in self.repo.branches])

        fb = gitflow.create('feature', 'foo')
Exemple #8
0
    def test_create(self):
        create_git_repo(self)
        gitflow = GitFlow()

        self.assertEquals([], self.repo.branches)

        gitflow.init()

        self.assertEquals(['develop', 'master'],
                [b.name for b in self.repo.branches])

        fb = gitflow.create('feature', 'foo')
Exemple #9
0
 def test_feature_list_verbose_no_commits(self):
     repo = create_git_repo(self)
     GitFlow(repo).init()
     repo.create_head('feature/wow', 'HEAD')
     stdout = run_git_flow('feature', 'list', '--verbose', capture=1)
     expected = ['  wow (no commits yet)']
     self.assertEqual(stdout.splitlines(), expected)
Exemple #10
0
 def test_gitflow_init_creates_initial_commit(self):
     repo = create_git_repo(self)
     all_commits_before_init = all_commits(repo)
     gitflow = GitFlow(repo).init()
     all_commits_after_init = all_commits(repo)
     self.assertNotEquals(all_commits_before_init, all_commits_after_init)
     self.assertEquals('Initial commit', repo.heads.master.commit.message)
 def test_release_branch_origin(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     new_branch = mgr.create('1.1')
     self.assertEqual(new_branch.commit,
                      gitflow.repo.branches['develop'].commit)
Exemple #12
0
 def test_release_branch_origin(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     new_branch = mgr.create('1.1')
     self.assertEqual(new_branch.commit,
             gitflow.repo.branches['develop'].commit)
Exemple #13
0
 def test_gitflow_init_creates_initial_commit(self):
     repo = create_git_repo(self)
     all_commits_before_init = all_commits(repo)
     gitflow = GitFlow(repo).init()
     all_commits_after_init = all_commits(repo)
     self.assertNotEquals(all_commits_before_init, all_commits_after_init)
     self.assertEquals('Initial commit', repo.heads.master.commit.message)
Exemple #14
0
 def test_create_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     gitflow.create('feature', 'foo', None, fetch=False)
     self.assertIn('feature/foo', [h.name for h in gitflow.repo.branches])
     gitflow.create('release', '1.0', None, fetch=False)
     self.assertIn('release/1.0', [h.name for h in gitflow.repo.branches])
Exemple #15
0
 def test_finish_release_rebase(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     mgr.create('1.0')
     self.assertRaises(
         Exception,
         mgr.finish, '1.0', rebase=True)
    def test_create_release_changes_active_branch(self):
        repo = create_git_repo(self)
        gitflow = GitFlow(repo).init()
        mgr = ReleaseBranchManager(gitflow)

        self.assertEquals('develop', repo.active_branch.name)
        mgr.create('1.0')
        self.assertEquals('release/1.0', repo.active_branch.name)
Exemple #17
0
    def test_create_release_changes_active_branch(self):
        repo = create_git_repo(self)
        gitflow = GitFlow(repo).init()
        mgr = ReleaseBranchManager(gitflow)

        self.assertEquals('develop', repo.active_branch.name)
        mgr.create('1.0')
        self.assertEquals('release/1.0', repo.active_branch.name)
Exemple #18
0
 def test_finish_release_rebase(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     mgr.create('1.0')
     self.assertRaisesRegexp(
         AssertionError, "does not make any sense",
         mgr.finish, '1.0', rebase=True)
Exemple #19
0
 def _test_create_branches_from_alt_base(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     gitflow.create('feature', 'foo', 'master', fetch=False)
     self.assertIn('feature/foo', [h.name for h in gitflow.repo.branches])
     gitflow.repo.index.commit('Foo')
     gitflow.create('release', '1.0', 'feature/foo', fetch=False)
     self.assertIn('release/1.0', [h.name for h in gitflow.repo.branches])
Exemple #20
0
 def test_feature_list_verbose_no_commits(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     repo.create_head('feature/wow', 'HEAD')
     stdout = runGitFlow('feature', 'list', '--verbose', capture=1)
     expected = [
       '  wow (no commits yet)'
       ]
     self.assertEqual(stdout.splitlines(), expected)
Exemple #21
0
 def test_create_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     gitflow.create('feature', 'foo', None, fetch=False)
     self.assertIn('feature/foo',
             [h.name for h in gitflow.repo.branches])
     gitflow.create('release', '1.0', None, fetch=False)
     self.assertIn('release/1.0',
             [h.name for h in gitflow.repo.branches])
 def test_create_new_support_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = SupportBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('1.x')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('support/1.x', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
                      gitflow.repo.branches['master'].commit)
 def test_create_new_release_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('3.14-beta5')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('release/3.14-beta5', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
                      gitflow.repo.branches['develop'].commit)
Exemple #24
0
 def test_create_new_support_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = SupportBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('1.x')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('support/1.x', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
             gitflow.repo.branches['master'].commit)
Exemple #25
0
 def test_create_new_feature_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = FeatureBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('foo')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('feature/foo', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
             gitflow.repo.branches['develop'].commit)
Exemple #26
0
 def test_create_new_hotfix_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = HotfixBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('1.2.3')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('hotfix/1.2.3', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
             gitflow.repo.branches['master'].commit)
Exemple #27
0
 def test_create_new_release_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('3.14-beta5')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('release/3.14-beta5', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
             gitflow.repo.branches['develop'].commit)
 def test_create_new_feature_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = FeatureBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('foo')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('feature/foo', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
                      gitflow.repo.branches['develop'].commit)
 def test_create_new_hotfix_branch(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = HotfixBranchManager(gitflow)
     self.assertEqual(0, len(mgr.list()))
     new_branch = mgr.create('1.2.3')
     self.assertEqual(1, len(mgr.list()))
     self.assertEqual('hotfix/1.2.3', mgr.list()[0].name)
     self.assertEqual(new_branch.commit,
                      gitflow.repo.branches['master'].commit)
Exemple #30
0
 def _test_create_branches_from_alt_base(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     gitflow.create('feature', 'foo', 'master', fetch=False)
     self.assertIn('feature/foo',
             [h.name for h in gitflow.repo.branches])
     gitflow.repo.index.commit('Foo')
     gitflow.create('release', '1.0', 'feature/foo', fetch=False)
     self.assertIn('release/1.0',
             [h.name for h in gitflow.repo.branches])
Exemple #31
0
 def test_gitflow_init_initializes_default_config(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertEquals('master', gitflow.master_name())
     self.assertEquals('develop', gitflow.develop_name())
     self.assertEquals('origin', gitflow.origin_name())
     self.assertEquals('feature/', gitflow.get_prefix('feature'))
     self.assertEquals('hotfix/', gitflow.get_prefix('hotfix'))
     self.assertEquals('release/', gitflow.get_prefix('release'))
     self.assertEquals('support/', gitflow.get_prefix('support'))
     self.assertEquals('', gitflow.get_prefix('versiontag'))
Exemple #32
0
 def test_gitflow_init_initializes_default_config(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertEquals('master', gitflow.master_name())
     self.assertEquals('develop', gitflow.develop_name())
     self.assertEquals('origin', gitflow.origin_name())
     self.assertEquals('feature/', gitflow.get_prefix('feature'))
     self.assertEquals('hotfix/', gitflow.get_prefix('hotfix'))
     self.assertEquals('release/', gitflow.get_prefix('release'))
     self.assertEquals('support/', gitflow.get_prefix('support'))
     self.assertEquals('', gitflow.get_prefix('versiontag'))
    def test_merge_feature_without_commits(self):
        repo = create_git_repo(self)
        gitflow = GitFlow(repo).init()
        mgr = FeatureBranchManager(gitflow)

        dc0 = gitflow.develop().commit
        mgr.create('newstuff')
        mgr.merge('newstuff', 'develop')
        dc1 = gitflow.develop().commit

        # Assert the develop tip is unchanged by the merge
        self.assertEqual(dc0, dc1)
        # Assert the target-branch is active
        self.assertEqual(gitflow.repo.active_branch.name, 'develop')
Exemple #34
0
    def test_merge_feature_without_commits(self):
        repo = create_git_repo(self)
        gitflow = GitFlow(repo).init()
        mgr = FeatureBranchManager(gitflow)

        dc0 = gitflow.develop().commit
        mgr.create('newstuff')
        mgr.merge('newstuff', 'develop')
        dc1 = gitflow.develop().commit

        # Assert the develop tip is unchanged by the merge
        self.assertEqual(dc0, dc1)
        # Assert the target-branch is active
        self.assertEqual(gitflow.repo.active_branch.name, 'develop')
Exemple #35
0
 def test_gitflow_init_with_alternative_config(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     prefixes = dict(feature='f-',
                     hotfix='hf-',
                     release='rel-',
                     support='supp-',
                     versiontag='ver')
     names = dict(origin='somewhereelse')
     gitflow.init(master='foo', develop='bar', prefixes=prefixes, names=names)
     self.assertEquals('foo', gitflow.master_name())
     self.assertEquals('bar', gitflow.develop_name())
     self.assertEquals('somewhereelse', gitflow.origin_name())
     self.assertEquals('f-', gitflow.get_prefix('feature'))
     self.assertEquals('rel-', gitflow.get_prefix('release'))
     self.assertEquals('hf-', gitflow.get_prefix('hotfix'))
     self.assertEquals('supp-', gitflow.get_prefix('support'))
     self.assertEquals('ver', gitflow.get_prefix('versiontag'))
Exemple #36
0
 def test_gitflow_init_with_alternative_config(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     prefixes = dict(feature='f-',
                     hotfix='hf-',
                     release='rel-',
                     support='supp-',
                     versiontag='ver')
     names = dict(origin='somewhereelse')
     gitflow.init(master='foo',
                  develop='bar',
                  prefixes=prefixes,
                  names=names)
     self.assertEquals('foo', gitflow.master_name())
     self.assertEquals('bar', gitflow.develop_name())
     self.assertEquals('somewhereelse', gitflow.origin_name())
     self.assertEquals('f-', gitflow.get_prefix('feature'))
     self.assertEquals('rel-', gitflow.get_prefix('release'))
     self.assertEquals('hf-', gitflow.get_prefix('hotfix'))
     self.assertEquals('supp-', gitflow.get_prefix('support'))
     self.assertEquals('ver', gitflow.get_prefix('versiontag'))
Exemple #37
0
 def test_gitflow_init_checkout_develop_if_newly_created(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertEqual(gitflow.repo.active_branch.name, 'develop')
Exemple #38
0
 def test_origin_without_remote_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertRaises(NoSuchRemoteError, gitflow.origin)
Exemple #39
0
 def test_gitflow_init_marks_initialized(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertFalse(gitflow.is_initialized())
     gitflow.init()
     self.assertTrue(gitflow.is_initialized())
Exemple #40
0
 def test_gitflow_throws_errors_before_init(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertRaises(NotInitialized, gitflow.master_name)
     self.assertRaises(NotInitialized, gitflow.develop_name)
     self.assertRaises(NotInitialized, gitflow.get_prefix, 'feature')
Exemple #41
0
 def test_gitflow_status_on_fresh_repo(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertEquals([], gitflow.status())
Exemple #42
0
 def test_gitflow_status_on_fresh_repo(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertEquals([], gitflow.status())
 def test_create_release_branch_fetch_without_remote_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     self.assertRaises(NoSuchRemoteError, mgr.create, 'foo', fetch=True)
 def test_full_name(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     fb = DummyBranchManager(gitflow)
     self.assertEquals('xyz/foo', fb.full_name('foo'))
     self.assertEquals('xyz/feature/foo', fb.full_name('feature/foo'))
Exemple #45
0
 def test_gitflow_throws_errors_before_init(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertRaises(NotInitialized, gitflow.master_name)
     self.assertRaises(NotInitialized, gitflow.develop_name)
     self.assertRaises(NotInitialized, gitflow.get_prefix, 'feature')
Exemple #46
0
 def test_gitflow_init_creates_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertItemsEqual(['master', 'develop'], gitflow.branch_names())
Exemple #47
0
 def test_gitflow_init_checkout_develop_if_newly_created(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertEqual(gitflow.repo.active_branch.name, 'develop')
 def test_empty_repo_has_no_releases(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     mgr = ReleaseBranchManager(gitflow)
     self.assertItemsEqual([], mgr.list())
 def test_default_prefix(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     fb = DummyBranchManager(gitflow)
     self.assertEquals('xyz/', fb.prefix)
Exemple #50
0
 def test_create_release_branch_fetch_without_remote_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     self.assertRaises(NoSuchRemoteError, mgr.create, 'foo', fetch=True)
Exemple #51
0
 def test_origin_without_remote_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertRaises(NoSuchRemoteError, gitflow.origin)
Exemple #52
0
 def test_empty_repo_has_no_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertItemsEqual([], gitflow.branch_names())
Exemple #53
0
 def test_gitflow_init_creates_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     self.assertItemsEqual(['master', 'develop'],
             gitflow.branch_names())
Exemple #54
0
 def test_create_existing_release_branch_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     mgr.create('1.0')
     self.assertRaises(BranchTypeExistsError, mgr.create, '1.0')
Exemple #55
0
 def test_empty_repo_has_no_releases(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     mgr = ReleaseBranchManager(gitflow)
     self.assertItemsEqual([], mgr.list())
Exemple #56
0
 def test_full_name(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     fb = DummyBranchManager(gitflow)
     self.assertEquals('xyz/foo', fb.full_name('foo'))
     self.assertEquals('xyz/feature/foo', fb.full_name('feature/foo'))
Exemple #57
0
 def test_gitflow_init_marks_initialized(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertFalse(gitflow.is_initialized())
     gitflow.init()
     self.assertTrue(gitflow.is_initialized())
 def test_create_existing_release_branch_raises_error(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo).init()
     mgr = ReleaseBranchManager(gitflow)
     mgr.create('1.0')
     self.assertRaises(BranchTypeExistsError, mgr.create, '1.0')
Exemple #59
0
 def test_empty_repo_has_no_branches(self):
     repo = create_git_repo(self)
     gitflow = GitFlow(repo)
     self.assertItemsEqual([], gitflow.branch_names())