diff options
Diffstat (limited to 'tests/test_subcmds_sync.py')
-rw-r--r-- | tests/test_subcmds_sync.py | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/tests/test_subcmds_sync.py b/tests/test_subcmds_sync.py index 13e23e34..8dde687c 100644 --- a/tests/test_subcmds_sync.py +++ b/tests/test_subcmds_sync.py | |||
@@ -304,29 +304,54 @@ class LocalSyncState(unittest.TestCase): | |||
304 | self.assertEqual(self.state.GetFetchTime(projA), 5) | 304 | self.assertEqual(self.state.GetFetchTime(projA), 5) |
305 | 305 | ||
306 | 306 | ||
307 | class FakeProject: | ||
308 | def __init__(self, relpath): | ||
309 | self.relpath = relpath | ||
310 | |||
311 | def __str__(self): | ||
312 | return f"project: {self.relpath}" | ||
313 | |||
314 | def __repr__(self): | ||
315 | return str(self) | ||
316 | |||
317 | |||
307 | class SafeCheckoutOrder(unittest.TestCase): | 318 | class SafeCheckoutOrder(unittest.TestCase): |
308 | def test_no_nested(self): | 319 | def test_no_nested(self): |
309 | p_f = mock.MagicMock(relpath="f") | 320 | p_f = FakeProject("f") |
310 | p_foo = mock.MagicMock(relpath="foo") | 321 | p_foo = FakeProject("foo") |
311 | out = sync._SafeCheckoutOrder([p_f, p_foo]) | 322 | out = sync._SafeCheckoutOrder([p_f, p_foo]) |
312 | self.assertEqual(out, [[p_f, p_foo]]) | 323 | self.assertEqual(out, [[p_f, p_foo]]) |
313 | 324 | ||
314 | def test_basic_nested(self): | 325 | def test_basic_nested(self): |
315 | p_foo = p_foo = mock.MagicMock(relpath="foo") | 326 | p_foo = p_foo = FakeProject("foo") |
316 | p_foo_bar = mock.MagicMock(relpath="foo/bar") | 327 | p_foo_bar = FakeProject("foo/bar") |
317 | out = sync._SafeCheckoutOrder([p_foo, p_foo_bar]) | 328 | out = sync._SafeCheckoutOrder([p_foo, p_foo_bar]) |
318 | self.assertEqual(out, [[p_foo], [p_foo_bar]]) | 329 | self.assertEqual(out, [[p_foo], [p_foo_bar]]) |
319 | 330 | ||
320 | def test_complex_nested(self): | 331 | def test_complex_nested(self): |
321 | p_foo = mock.MagicMock(relpath="foo") | 332 | p_foo = FakeProject("foo") |
322 | p_foo_bar = mock.MagicMock(relpath="foo/bar") | 333 | p_foobar = FakeProject("foobar") |
323 | p_foo_bar_baz_baq = mock.MagicMock(relpath="foo/bar/baz/baq") | 334 | p_foo_dash_bar = FakeProject("foo-bar") |
324 | p_bar = mock.MagicMock(relpath="bar") | 335 | p_foo_bar = FakeProject("foo/bar") |
336 | p_foo_bar_baz_baq = FakeProject("foo/bar/baz/baq") | ||
337 | p_bar = FakeProject("bar") | ||
325 | out = sync._SafeCheckoutOrder( | 338 | out = sync._SafeCheckoutOrder( |
326 | [p_foo_bar_baz_baq, p_foo, p_foo_bar, p_bar] | 339 | [ |
340 | p_foo_bar_baz_baq, | ||
341 | p_foo, | ||
342 | p_foobar, | ||
343 | p_foo_dash_bar, | ||
344 | p_foo_bar, | ||
345 | p_bar, | ||
346 | ] | ||
327 | ) | 347 | ) |
328 | self.assertEqual( | 348 | self.assertEqual( |
329 | out, [[p_bar, p_foo], [p_foo_bar], [p_foo_bar_baz_baq]] | 349 | out, |
350 | [ | ||
351 | [p_bar, p_foo, p_foo_dash_bar, p_foobar], | ||
352 | [p_foo_bar], | ||
353 | [p_foo_bar_baz_baq], | ||
354 | ], | ||
330 | ) | 355 | ) |
331 | 356 | ||
332 | 357 | ||