import unittest import unittest.mock import git from .mixins import CatchWarningsMixin from centpkg import DistGitDirectory from centpkg import git as centpkg_git class TestDistGitNothing(unittest.TestCase): def test_distgit_emptystring(self): with self.assertRaises(TypeError): d = DistGitDirectory() class TestDistGitInvalid(unittest.TestCase, CatchWarningsMixin): def test_invalid_branchstring_raises(self): self.branchstring = 'nope-not-a-branch' with self.assertWarns(UserWarning): self.d = DistGitDirectory(self.branchstring) class TestDistgitOnlySig(unittest.TestCase): def setUp(self): self.branchstring = 'c7-sig-cloud' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'cloud') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'cloud7-common-el7') class TestDistgitSigAndCommon(unittest.TestCase): def setUp(self): self.branchstring = 'c7-sig-cloud-common' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'cloud') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'cloud7-common-el7') class TestDistgitSigAndProject(unittest.TestCase): def setUp(self): self.branchstring = 'c7-sig-cloud-openstack' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'cloud') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, 'openstack') def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'cloud7-openstack-common-el7') class TestDistgitSigProjectAndCommon(unittest.TestCase): def setUp(self): self.branchstring = 'c7-sig-cloud-openstack-common' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'cloud') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, 'openstack') def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'cloud7-openstack-common-el7') class TestDistgitSigProjectAndRelease(unittest.TestCase): def setUp(self): self.branchstring = 'c7-sig-cloud-openstack-kilo' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'cloud') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, 'openstack') def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, 'kilo') def test_target_gets_set(self): self.assertEqual(self.d.target, 'cloud7-openstack-kilo-el7') class TestDistgitC7DistroBranch(unittest.TestCase): def setUp(self): self.branchstring = 'c7' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'centos') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '7') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'c7') class TestDistgitStream9Module(unittest.TestCase): def setUp(self): self.branchstring = '3.0-rhel-9.0.0-beta' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'centos') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '9') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'c9s-candidate') class TestDistgitStream9ModuleComponent(unittest.TestCase): def setUp(self): self.branchstring = 'stream-container-tools-3.0-rhel-9.0.0-beta' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'centos') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '9') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'c9s-candidate') class TestDistgitC6DistroBranch(unittest.TestCase): def setUp(self): self.branchstring = 'c6' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'centos') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '6') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, None) def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'c6') class TestDistgitC6PlusDistroBranch(unittest.TestCase): def setUp(self): self.branchstring = 'c6-plus' self.d = DistGitDirectory(self.branchstring) def test_signame_gets_set(self): self.assertEqual(self.d.signame, 'centos') def test_centosversion_gets_set(self): self.assertEqual(self.d.centosversion, '6') def test_projectname_gets_set(self): self.assertEqual(self.d.projectname, 'plus') def test_releasename_gets_set(self): self.assertEqual(self.d.releasename, None) def test_target_gets_set(self): self.assertEqual(self.d.target, 'c6-plus') class TestOldGitBranch(unittest.TestCase, CatchWarningsMixin): def test_old_branch_warns(self): with self.assertWarns(DeprecationWarning): branchstring = 'virt7' d = DistGitDirectory(branchstring) class TestIsFork(unittest.TestCase): def setUp(self): self.branchstring = 'c9s' def test_none(self): d = DistGitDirectory(self.branchstring) self.assertFalse(d.is_fork()) @unittest.mock.patch.object(centpkg_git.repo.Repo, 'remotes', new=dict(origin=type('Remote', (object,), {'urls': ['ssh://git@git.centos.org/forks/lrossett/centos/centpkg.git']}))) @unittest.mock.patch.object(centpkg_git.repo.Repo, '__init__', new=lambda s, p: None) def test_fork_url(self): d = DistGitDirectory(self.branchstring, 'binutils') self.assertTrue(d.is_fork()) @unittest.mock.patch.object(centpkg_git.repo.Repo, 'remotes', new=dict(origin=type('Remote', (object,), {'urls': ['git+ssh://git@gitlab.com/redhat/centos-stream/rpms/binutils.git']}))) @unittest.mock.patch.object(centpkg_git.repo.Repo, '__init__', new=lambda s, p: None) def test_upstream_url(self): d = DistGitDirectory(self.branchstring, 'binutils') self.assertFalse(d.is_fork())