summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_git_config.py14
-rw-r--r--tests/test_git_superproject.py2
-rw-r--r--tests/test_manifest_xml.py16
-rw-r--r--tests/test_project.py8
-rw-r--r--tests/test_subcmds_sync.py55
5 files changed, 14 insertions, 81 deletions
diff --git a/tests/test_git_config.py b/tests/test_git_config.py
index 0df38430..a4fad9ef 100644
--- a/tests/test_git_config.py
+++ b/tests/test_git_config.py
@@ -19,7 +19,6 @@ import tempfile
19import unittest 19import unittest
20 20
21import git_config 21import git_config
22import repo_trace
23 22
24 23
25def fixture(*paths): 24def fixture(*paths):
@@ -34,16 +33,9 @@ class GitConfigReadOnlyTests(unittest.TestCase):
34 def setUp(self): 33 def setUp(self):
35 """Create a GitConfig object using the test.gitconfig fixture. 34 """Create a GitConfig object using the test.gitconfig fixture.
36 """ 35 """
37
38 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests')
39 repo_trace._TRACE_FILE = os.path.join(self.tempdirobj.name, 'TRACE_FILE_from_test')
40
41 config_fixture = fixture('test.gitconfig') 36 config_fixture = fixture('test.gitconfig')
42 self.config = git_config.GitConfig(config_fixture) 37 self.config = git_config.GitConfig(config_fixture)
43 38
44 def tearDown(self):
45 self.tempdirobj.cleanup()
46
47 def test_GetString_with_empty_config_values(self): 39 def test_GetString_with_empty_config_values(self):
48 """ 40 """
49 Test config entries with no value. 41 Test config entries with no value.
@@ -117,15 +109,9 @@ class GitConfigReadWriteTests(unittest.TestCase):
117 """Read/write tests of the GitConfig class.""" 109 """Read/write tests of the GitConfig class."""
118 110
119 def setUp(self): 111 def setUp(self):
120 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests')
121 repo_trace._TRACE_FILE = os.path.join(self.tempdirobj.name, 'TRACE_FILE_from_test')
122
123 self.tmpfile = tempfile.NamedTemporaryFile() 112 self.tmpfile = tempfile.NamedTemporaryFile()
124 self.config = self.get_config() 113 self.config = self.get_config()
125 114
126 def tearDown(self):
127 self.tempdirobj.cleanup()
128
129 def get_config(self): 115 def get_config(self):
130 """Get a new GitConfig instance.""" 116 """Get a new GitConfig instance."""
131 return git_config.GitConfig(self.tmpfile.name) 117 return git_config.GitConfig(self.tmpfile.name)
diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py
index 0bb77185..0ad9b01d 100644
--- a/tests/test_git_superproject.py
+++ b/tests/test_git_superproject.py
@@ -24,7 +24,6 @@ from unittest import mock
24import git_superproject 24import git_superproject
25import git_trace2_event_log 25import git_trace2_event_log
26import manifest_xml 26import manifest_xml
27import repo_trace
28from test_manifest_xml import sort_attributes 27from test_manifest_xml import sort_attributes
29 28
30 29
@@ -40,7 +39,6 @@ class SuperprojectTestCase(unittest.TestCase):
40 """Set up superproject every time.""" 39 """Set up superproject every time."""
41 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') 40 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests')
42 self.tempdir = self.tempdirobj.name 41 self.tempdir = self.tempdirobj.name
43 repo_trace._TRACE_FILE = os.path.join(self.tempdir, 'TRACE_FILE_from_test')
44 self.repodir = os.path.join(self.tempdir, '.repo') 42 self.repodir = os.path.join(self.tempdir, '.repo')
45 self.manifest_file = os.path.join( 43 self.manifest_file = os.path.join(
46 self.repodir, manifest_xml.MANIFEST_FILE_NAME) 44 self.repodir, manifest_xml.MANIFEST_FILE_NAME)
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py
index f92108e1..e181b642 100644
--- a/tests/test_manifest_xml.py
+++ b/tests/test_manifest_xml.py
@@ -23,7 +23,6 @@ import xml.dom.minidom
23 23
24import error 24import error
25import manifest_xml 25import manifest_xml
26import repo_trace
27 26
28 27
29# Invalid paths that we don't want in the filesystem. 28# Invalid paths that we don't want in the filesystem.
@@ -94,7 +93,6 @@ class ManifestParseTestCase(unittest.TestCase):
94 def setUp(self): 93 def setUp(self):
95 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') 94 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests')
96 self.tempdir = self.tempdirobj.name 95 self.tempdir = self.tempdirobj.name
97 repo_trace._TRACE_FILE = os.path.join(self.tempdir, 'TRACE_FILE_from_test')
98 self.repodir = os.path.join(self.tempdir, '.repo') 96 self.repodir = os.path.join(self.tempdir, '.repo')
99 self.manifest_dir = os.path.join(self.repodir, 'manifests') 97 self.manifest_dir = os.path.join(self.repodir, 'manifests')
100 self.manifest_file = os.path.join( 98 self.manifest_file = os.path.join(
@@ -264,10 +262,10 @@ class XmlManifestTests(ManifestParseTestCase):
264 '<project name="r" groups="keep"/>' 262 '<project name="r" groups="keep"/>'
265 '</manifest>') 263 '</manifest>')
266 self.assertEqual( 264 self.assertEqual(
267 sort_attributes(manifest.ToXml(omit_local=True).toxml()), 265 manifest.ToXml(omit_local=True).toxml(),
268 '<?xml version="1.0" ?><manifest>' 266 '<?xml version="1.0" ?><manifest>'
269 '<remote fetch=".." name="a"/><default remote="a" revision="r"/>' 267 '<remote name="a" fetch=".."/><default remote="a" revision="r"/>'
270 '<project name="q"/><project groups="keep" name="r"/></manifest>') 268 '<project name="q"/><project name="r" groups="keep"/></manifest>')
271 269
272 def test_toxml_with_local(self): 270 def test_toxml_with_local(self):
273 """Does include local_manifests projects when omit_local=False.""" 271 """Does include local_manifests projects when omit_local=False."""
@@ -279,11 +277,11 @@ class XmlManifestTests(ManifestParseTestCase):
279 '<project name="r" groups="keep"/>' 277 '<project name="r" groups="keep"/>'
280 '</manifest>') 278 '</manifest>')
281 self.assertEqual( 279 self.assertEqual(
282 sort_attributes(manifest.ToXml(omit_local=False).toxml()), 280 manifest.ToXml(omit_local=False).toxml(),
283 '<?xml version="1.0" ?><manifest>' 281 '<?xml version="1.0" ?><manifest>'
284 '<remote fetch=".." name="a"/><default remote="a" revision="r"/>' 282 '<remote name="a" fetch=".."/><default remote="a" revision="r"/>'
285 '<project groups="local::me" name="p"/>' 283 '<project name="p" groups="local::me"/>'
286 '<project name="q"/><project groups="keep" name="r"/></manifest>') 284 '<project name="q"/><project name="r" groups="keep"/></manifest>')
287 285
288 def test_repo_hooks(self): 286 def test_repo_hooks(self):
289 """Check repo-hooks settings.""" 287 """Check repo-hooks settings."""
diff --git a/tests/test_project.py b/tests/test_project.py
index 5c600be7..acd44ccc 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -26,7 +26,6 @@ import git_command
26import git_config 26import git_config
27import platform_utils 27import platform_utils
28import project 28import project
29import repo_trace
30 29
31 30
32@contextlib.contextmanager 31@contextlib.contextmanager
@@ -65,13 +64,6 @@ class FakeProject(object):
65class ReviewableBranchTests(unittest.TestCase): 64class ReviewableBranchTests(unittest.TestCase):
66 """Check ReviewableBranch behavior.""" 65 """Check ReviewableBranch behavior."""
67 66
68 def setUp(self):
69 self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests')
70 repo_trace._TRACE_FILE = os.path.join(self.tempdirobj.name, 'TRACE_FILE_from_test')
71
72 def tearDown(self):
73 self.tempdirobj.cleanup()
74
75 def test_smoke(self): 67 def test_smoke(self):
76 """A quick run through everything.""" 68 """A quick run through everything."""
77 with TempGitTree() as tempdir: 69 with TempGitTree() as tempdir:
diff --git a/tests/test_subcmds_sync.py b/tests/test_subcmds_sync.py
index 13f3f873..aad713f2 100644
--- a/tests/test_subcmds_sync.py
+++ b/tests/test_subcmds_sync.py
@@ -11,9 +11,9 @@
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and 12# See the License for the specific language governing permissions and
13# limitations under the License. 13# limitations under the License.
14
14"""Unittests for the subcmds/sync.py module.""" 15"""Unittests for the subcmds/sync.py module."""
15 16
16import unittest
17from unittest import mock 17from unittest import mock
18 18
19import pytest 19import pytest
@@ -21,14 +21,17 @@ import pytest
21from subcmds import sync 21from subcmds import sync
22 22
23 23
24@pytest.mark.parametrize('use_superproject, cli_args, result', [ 24@pytest.mark.parametrize(
25 'use_superproject, cli_args, result',
26 [
25 (True, ['--current-branch'], True), 27 (True, ['--current-branch'], True),
26 (True, ['--no-current-branch'], True), 28 (True, ['--no-current-branch'], True),
27 (True, [], True), 29 (True, [], True),
28 (False, ['--current-branch'], True), 30 (False, ['--current-branch'], True),
29 (False, ['--no-current-branch'], False), 31 (False, ['--no-current-branch'], False),
30 (False, [], None), 32 (False, [], None),
31]) 33 ]
34)
32def test_get_current_branch_only(use_superproject, cli_args, result): 35def test_get_current_branch_only(use_superproject, cli_args, result):
33 """Test Sync._GetCurrentBranchOnly logic. 36 """Test Sync._GetCurrentBranchOnly logic.
34 37
@@ -38,49 +41,5 @@ def test_get_current_branch_only(use_superproject, cli_args, result):
38 cmd = sync.Sync() 41 cmd = sync.Sync()
39 opts, _ = cmd.OptionParser.parse_args(cli_args) 42 opts, _ = cmd.OptionParser.parse_args(cli_args)
40 43
41 with mock.patch('git_superproject.UseSuperproject', 44 with mock.patch('git_superproject.UseSuperproject', return_value=use_superproject):
42 return_value=use_superproject):
43 assert cmd._GetCurrentBranchOnly(opts, cmd.manifest) == result 45 assert cmd._GetCurrentBranchOnly(opts, cmd.manifest) == result
44
45
46class GetPreciousObjectsState(unittest.TestCase):
47 """Tests for _GetPreciousObjectsState."""
48
49 def setUp(self):
50 """Common setup."""
51 self.cmd = sync.Sync()
52 self.project = p = mock.MagicMock(use_git_worktrees=False,
53 UseAlternates=False)
54 p.manifest.GetProjectsWithName.return_value = [p]
55
56 self.opt = mock.Mock(spec_set=['this_manifest_only'])
57 self.opt.this_manifest_only = False
58
59 def test_worktrees(self):
60 """False for worktrees."""
61 self.project.use_git_worktrees = True
62 self.assertFalse(self.cmd._GetPreciousObjectsState(self.project, self.opt))
63
64 def test_not_shared(self):
65 """Singleton project."""
66 self.assertFalse(self.cmd._GetPreciousObjectsState(self.project, self.opt))
67
68 def test_shared(self):
69 """Shared project."""
70 self.project.manifest.GetProjectsWithName.return_value = [
71 self.project, self.project
72 ]
73 self.assertTrue(self.cmd._GetPreciousObjectsState(self.project, self.opt))
74
75 def test_shared_with_alternates(self):
76 """Shared project, with alternates."""
77 self.project.manifest.GetProjectsWithName.return_value = [
78 self.project, self.project
79 ]
80 self.project.UseAlternates = True
81 self.assertFalse(self.cmd._GetPreciousObjectsState(self.project, self.opt))
82
83 def test_not_found(self):
84 """Project not found in manifest."""
85 self.project.manifest.GetProjectsWithName.return_value = []
86 self.assertFalse(self.cmd._GetPreciousObjectsState(self.project, self.opt))