from basetest import * import time class TestZfsAutobackup31(unittest2.TestCase): """various new 3.1 features""" def setUp(self): prepare_zpools() self.longMessage=True def test_no_thinning(self): with patch('time.strftime', return_value="test-20101111000000"): self.assertFalse(ZfsAutobackup("test test_target1 --no-progress --verbose --allow-empty".split(" ")).run()) with patch('time.strftime', return_value="test-20101111000001"): self.assertFalse(ZfsAutobackup("test test_target1 --no-progress --verbose --allow-empty --keep-target=0 --keep-source=0 --no-thinning".split(" ")).run()) r=shelltest("zfs list -H -o name -r -t all "+TEST_POOLS) self.assertMultiLineEqual(r,""" test_source1 test_source1/fs1 test_source1/fs1@test-20101111000000 test_source1/fs1@test-20101111000001 test_source1/fs1/sub test_source1/fs1/sub@test-20101111000000 test_source1/fs1/sub@test-20101111000001 test_source2 test_source2/fs2 test_source2/fs2/sub test_source2/fs2/sub@test-20101111000000 test_source2/fs2/sub@test-20101111000001 test_source2/fs3 test_source2/fs3/sub test_target1 test_target1/test_source1 test_target1/test_source1/fs1 test_target1/test_source1/fs1@test-20101111000000 test_target1/test_source1/fs1@test-20101111000001 test_target1/test_source1/fs1/sub test_target1/test_source1/fs1/sub@test-20101111000000 test_target1/test_source1/fs1/sub@test-20101111000001 test_target1/test_source2 test_target1/test_source2/fs2 test_target1/test_source2/fs2/sub test_target1/test_source2/fs2/sub@test-20101111000000 test_target1/test_source2/fs2/sub@test-20101111000001 """) def test_re_replication(self): """test re-replication of something thats already a backup (new in v3.1-beta5)""" shelltest("zfs create test_target1/a") shelltest("zfs create test_target1/b") with patch('time.strftime', return_value="test-20101111000000"): self.assertFalse(ZfsAutobackup("test test_target1/a --no-progress --verbose --debug".split(" ")).run()) with patch('time.strftime', return_value="test-20101111000001"): self.assertFalse(ZfsAutobackup("test test_target1/b --no-progress --verbose".split(" ")).run()) r=shelltest("zfs list -H -o name -r -t snapshot test_target1") #NOTE: it wont backup test_target1/a/test_source2/fs2/sub to test_target1/b since it doesnt have the zfs_autobackup property anymore. self.assertMultiLineEqual(r,""" test_target1/a/test_source1/fs1@test-20101111000000 test_target1/a/test_source1/fs1/sub@test-20101111000000 test_target1/a/test_source2/fs2/sub@test-20101111000000 test_target1/b/test_source1/fs1@test-20101111000000 test_target1/b/test_source1/fs1/sub@test-20101111000000 test_target1/b/test_source2/fs2/sub@test-20101111000000 test_target1/b/test_target1/a/test_source1/fs1@test-20101111000000 test_target1/b/test_target1/a/test_source1/fs1/sub@test-20101111000000 """) def test_zfs_compressed(self): with patch('time.strftime', return_value="test-20101111000000"): self.assertFalse( ZfsAutobackup("test test_target1 --no-progress --verbose --debug --zfs-compressed".split(" ")).run())