diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_git_config.py | 14 | ||||
-rw-r--r-- | tests/test_git_superproject.py | 2 | ||||
-rw-r--r-- | tests/test_manifest_xml.py | 16 | ||||
-rw-r--r-- | tests/test_project.py | 8 | ||||
-rw-r--r-- | tests/test_subcmds_sync.py | 55 |
5 files changed, 81 insertions, 14 deletions
diff --git a/tests/test_git_config.py b/tests/test_git_config.py index a4fad9ef..0df38430 100644 --- a/tests/test_git_config.py +++ b/tests/test_git_config.py | |||
@@ -19,6 +19,7 @@ import tempfile | |||
19 | import unittest | 19 | import unittest |
20 | 20 | ||
21 | import git_config | 21 | import git_config |
22 | import repo_trace | ||
22 | 23 | ||
23 | 24 | ||
24 | def fixture(*paths): | 25 | def fixture(*paths): |
@@ -33,9 +34,16 @@ class GitConfigReadOnlyTests(unittest.TestCase): | |||
33 | def setUp(self): | 34 | def setUp(self): |
34 | """Create a GitConfig object using the test.gitconfig fixture. | 35 | """Create a GitConfig object using the test.gitconfig fixture. |
35 | """ | 36 | """ |
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 | |||
36 | config_fixture = fixture('test.gitconfig') | 41 | config_fixture = fixture('test.gitconfig') |
37 | self.config = git_config.GitConfig(config_fixture) | 42 | self.config = git_config.GitConfig(config_fixture) |
38 | 43 | ||
44 | def tearDown(self): | ||
45 | self.tempdirobj.cleanup() | ||
46 | |||
39 | def test_GetString_with_empty_config_values(self): | 47 | def test_GetString_with_empty_config_values(self): |
40 | """ | 48 | """ |
41 | Test config entries with no value. | 49 | Test config entries with no value. |
@@ -109,9 +117,15 @@ class GitConfigReadWriteTests(unittest.TestCase): | |||
109 | """Read/write tests of the GitConfig class.""" | 117 | """Read/write tests of the GitConfig class.""" |
110 | 118 | ||
111 | def setUp(self): | 119 | 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 | |||
112 | self.tmpfile = tempfile.NamedTemporaryFile() | 123 | self.tmpfile = tempfile.NamedTemporaryFile() |
113 | self.config = self.get_config() | 124 | self.config = self.get_config() |
114 | 125 | ||
126 | def tearDown(self): | ||
127 | self.tempdirobj.cleanup() | ||
128 | |||
115 | def get_config(self): | 129 | def get_config(self): |
116 | """Get a new GitConfig instance.""" | 130 | """Get a new GitConfig instance.""" |
117 | return git_config.GitConfig(self.tmpfile.name) | 131 | return git_config.GitConfig(self.tmpfile.name) |
diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py index 0ad9b01d..0bb77185 100644 --- a/tests/test_git_superproject.py +++ b/tests/test_git_superproject.py | |||
@@ -24,6 +24,7 @@ from unittest import mock | |||
24 | import git_superproject | 24 | import git_superproject |
25 | import git_trace2_event_log | 25 | import git_trace2_event_log |
26 | import manifest_xml | 26 | import manifest_xml |
27 | import repo_trace | ||
27 | from test_manifest_xml import sort_attributes | 28 | from test_manifest_xml import sort_attributes |
28 | 29 | ||
29 | 30 | ||
@@ -39,6 +40,7 @@ class SuperprojectTestCase(unittest.TestCase): | |||
39 | """Set up superproject every time.""" | 40 | """Set up superproject every time.""" |
40 | self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') | 41 | self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') |
41 | self.tempdir = self.tempdirobj.name | 42 | self.tempdir = self.tempdirobj.name |
43 | repo_trace._TRACE_FILE = os.path.join(self.tempdir, 'TRACE_FILE_from_test') | ||
42 | self.repodir = os.path.join(self.tempdir, '.repo') | 44 | self.repodir = os.path.join(self.tempdir, '.repo') |
43 | self.manifest_file = os.path.join( | 45 | self.manifest_file = os.path.join( |
44 | self.repodir, manifest_xml.MANIFEST_FILE_NAME) | 46 | self.repodir, manifest_xml.MANIFEST_FILE_NAME) |
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py index e181b642..f92108e1 100644 --- a/tests/test_manifest_xml.py +++ b/tests/test_manifest_xml.py | |||
@@ -23,6 +23,7 @@ import xml.dom.minidom | |||
23 | 23 | ||
24 | import error | 24 | import error |
25 | import manifest_xml | 25 | import manifest_xml |
26 | import repo_trace | ||
26 | 27 | ||
27 | 28 | ||
28 | # Invalid paths that we don't want in the filesystem. | 29 | # Invalid paths that we don't want in the filesystem. |
@@ -93,6 +94,7 @@ class ManifestParseTestCase(unittest.TestCase): | |||
93 | def setUp(self): | 94 | def setUp(self): |
94 | self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') | 95 | self.tempdirobj = tempfile.TemporaryDirectory(prefix='repo_tests') |
95 | self.tempdir = self.tempdirobj.name | 96 | self.tempdir = self.tempdirobj.name |
97 | repo_trace._TRACE_FILE = os.path.join(self.tempdir, 'TRACE_FILE_from_test') | ||
96 | self.repodir = os.path.join(self.tempdir, '.repo') | 98 | self.repodir = os.path.join(self.tempdir, '.repo') |
97 | self.manifest_dir = os.path.join(self.repodir, 'manifests') | 99 | self.manifest_dir = os.path.join(self.repodir, 'manifests') |
98 | self.manifest_file = os.path.join( | 100 | self.manifest_file = os.path.join( |
@@ -262,10 +264,10 @@ class XmlManifestTests(ManifestParseTestCase): | |||
262 | '<project name="r" groups="keep"/>' | 264 | '<project name="r" groups="keep"/>' |
263 | '</manifest>') | 265 | '</manifest>') |
264 | self.assertEqual( | 266 | self.assertEqual( |
265 | manifest.ToXml(omit_local=True).toxml(), | 267 | sort_attributes(manifest.ToXml(omit_local=True).toxml()), |
266 | '<?xml version="1.0" ?><manifest>' | 268 | '<?xml version="1.0" ?><manifest>' |
267 | '<remote name="a" fetch=".."/><default remote="a" revision="r"/>' | 269 | '<remote fetch=".." name="a"/><default remote="a" revision="r"/>' |
268 | '<project name="q"/><project name="r" groups="keep"/></manifest>') | 270 | '<project name="q"/><project groups="keep" name="r"/></manifest>') |
269 | 271 | ||
270 | def test_toxml_with_local(self): | 272 | def test_toxml_with_local(self): |
271 | """Does include local_manifests projects when omit_local=False.""" | 273 | """Does include local_manifests projects when omit_local=False.""" |
@@ -277,11 +279,11 @@ class XmlManifestTests(ManifestParseTestCase): | |||
277 | '<project name="r" groups="keep"/>' | 279 | '<project name="r" groups="keep"/>' |
278 | '</manifest>') | 280 | '</manifest>') |
279 | self.assertEqual( | 281 | self.assertEqual( |
280 | manifest.ToXml(omit_local=False).toxml(), | 282 | sort_attributes(manifest.ToXml(omit_local=False).toxml()), |
281 | '<?xml version="1.0" ?><manifest>' | 283 | '<?xml version="1.0" ?><manifest>' |
282 | '<remote name="a" fetch=".."/><default remote="a" revision="r"/>' | 284 | '<remote fetch=".." name="a"/><default remote="a" revision="r"/>' |
283 | '<project name="p" groups="local::me"/>' | 285 | '<project groups="local::me" name="p"/>' |
284 | '<project name="q"/><project name="r" groups="keep"/></manifest>') | 286 | '<project name="q"/><project groups="keep" name="r"/></manifest>') |
285 | 287 | ||
286 | def test_repo_hooks(self): | 288 | def test_repo_hooks(self): |
287 | """Check repo-hooks settings.""" | 289 | """Check repo-hooks settings.""" |
diff --git a/tests/test_project.py b/tests/test_project.py index acd44ccc..5c600be7 100644 --- a/tests/test_project.py +++ b/tests/test_project.py | |||
@@ -26,6 +26,7 @@ import git_command | |||
26 | import git_config | 26 | import git_config |
27 | import platform_utils | 27 | import platform_utils |
28 | import project | 28 | import project |
29 | import repo_trace | ||
29 | 30 | ||
30 | 31 | ||
31 | @contextlib.contextmanager | 32 | @contextlib.contextmanager |
@@ -64,6 +65,13 @@ class FakeProject(object): | |||
64 | class ReviewableBranchTests(unittest.TestCase): | 65 | class ReviewableBranchTests(unittest.TestCase): |
65 | """Check ReviewableBranch behavior.""" | 66 | """Check ReviewableBranch behavior.""" |
66 | 67 | ||
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 | |||
67 | def test_smoke(self): | 75 | def test_smoke(self): |
68 | """A quick run through everything.""" | 76 | """A quick run through everything.""" |
69 | with TempGitTree() as tempdir: | 77 | with TempGitTree() as tempdir: |
diff --git a/tests/test_subcmds_sync.py b/tests/test_subcmds_sync.py index aad713f2..13f3f873 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 | |||
15 | """Unittests for the subcmds/sync.py module.""" | 14 | """Unittests for the subcmds/sync.py module.""" |
16 | 15 | ||
16 | import unittest | ||
17 | from unittest import mock | 17 | from unittest import mock |
18 | 18 | ||
19 | import pytest | 19 | import pytest |
@@ -21,17 +21,14 @@ import pytest | |||
21 | from subcmds import sync | 21 | from subcmds import sync |
22 | 22 | ||
23 | 23 | ||
24 | @pytest.mark.parametrize( | 24 | @pytest.mark.parametrize('use_superproject, cli_args, result', [ |
25 | 'use_superproject, cli_args, result', | ||
26 | [ | ||
27 | (True, ['--current-branch'], True), | 25 | (True, ['--current-branch'], True), |
28 | (True, ['--no-current-branch'], True), | 26 | (True, ['--no-current-branch'], True), |
29 | (True, [], True), | 27 | (True, [], True), |
30 | (False, ['--current-branch'], True), | 28 | (False, ['--current-branch'], True), |
31 | (False, ['--no-current-branch'], False), | 29 | (False, ['--no-current-branch'], False), |
32 | (False, [], None), | 30 | (False, [], None), |
33 | ] | 31 | ]) |
34 | ) | ||
35 | def test_get_current_branch_only(use_superproject, cli_args, result): | 32 | def test_get_current_branch_only(use_superproject, cli_args, result): |
36 | """Test Sync._GetCurrentBranchOnly logic. | 33 | """Test Sync._GetCurrentBranchOnly logic. |
37 | 34 | ||
@@ -41,5 +38,49 @@ def test_get_current_branch_only(use_superproject, cli_args, result): | |||
41 | cmd = sync.Sync() | 38 | cmd = sync.Sync() |
42 | opts, _ = cmd.OptionParser.parse_args(cli_args) | 39 | opts, _ = cmd.OptionParser.parse_args(cli_args) |
43 | 40 | ||
44 | with mock.patch('git_superproject.UseSuperproject', return_value=use_superproject): | 41 | with mock.patch('git_superproject.UseSuperproject', |
42 | return_value=use_superproject): | ||
45 | assert cmd._GetCurrentBranchOnly(opts, cmd.manifest) == result | 43 | assert cmd._GetCurrentBranchOnly(opts, cmd.manifest) == result |
44 | |||
45 | |||
46 | class 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)) | ||