mirror of
https://github.com/psy0rz/zfs_autobackup.git
synced 2025-06-05 01:33:00 +03:00
cleanup tests
This commit is contained in:
parent
4e1bfd8cba
commit
b22113aad4
36
basetest.py
Normal file
36
basetest.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import subprocess
|
||||||
|
import random
|
||||||
|
|
||||||
|
#default test stuff
|
||||||
|
import unittest
|
||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
from pprint import *
|
||||||
|
from bin.zfs_autobackup import *
|
||||||
|
|
||||||
|
|
||||||
|
def prepare_zpools():
|
||||||
|
print("Preparing zfs filesystems...")
|
||||||
|
|
||||||
|
#need ram blockdevice
|
||||||
|
# subprocess.call("rmmod brd", shell=True)
|
||||||
|
subprocess.check_call("modprobe brd rd_size=512000", shell=True)
|
||||||
|
|
||||||
|
#remove old stuff
|
||||||
|
subprocess.call("zpool destroy test_source1", shell=True)
|
||||||
|
subprocess.call("zpool destroy test_source2", shell=True)
|
||||||
|
subprocess.call("zpool destroy test_target1", shell=True)
|
||||||
|
|
||||||
|
#create pools
|
||||||
|
subprocess.check_call("zpool create test_source1 /dev/ram0", shell=True)
|
||||||
|
subprocess.check_call("zpool create test_source2 /dev/ram1", shell=True)
|
||||||
|
subprocess.check_call("zpool create test_target1 /dev/ram2", shell=True)
|
||||||
|
|
||||||
|
#create test structure
|
||||||
|
subprocess.check_call("zfs create -p test_source1/fs1/sub", shell=True)
|
||||||
|
subprocess.check_call("zfs create -p test_source2/fs2/sub", shell=True)
|
||||||
|
subprocess.check_call("zfs create -p test_source2/fs3/sub", shell=True)
|
||||||
|
subprocess.check_call("zfs set autobackup:test=true test_source1/fs1", shell=True)
|
||||||
|
subprocess.check_call("zfs set autobackup:test=child test_source2/fs2", shell=True)
|
||||||
|
|
||||||
|
print("Prepare done")
|
@ -1418,7 +1418,7 @@ class ZfsNode(ExecuteNode):
|
|||||||
|
|
||||||
class ZfsAutobackup:
|
class ZfsAutobackup:
|
||||||
"""main class"""
|
"""main class"""
|
||||||
def __init__(self):
|
def __init__(self,argv):
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description=HEADER,
|
description=HEADER,
|
||||||
@ -1465,7 +1465,7 @@ class ZfsAutobackup:
|
|||||||
parser.add_argument('--progress', action='store_true', help='show zfs progress output (to stderr). Enabled by default on ttys.')
|
parser.add_argument('--progress', action='store_true', help='show zfs progress output (to stderr). Enabled by default on ttys.')
|
||||||
|
|
||||||
#note args is the only global variable we use, since its a global readonly setting anyway
|
#note args is the only global variable we use, since its a global readonly setting anyway
|
||||||
args = parser.parse_args()
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
self.args=args
|
self.args=args
|
||||||
|
|
||||||
@ -1624,5 +1624,5 @@ class ZfsAutobackup:
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
zfs_autobackup=ZfsAutobackup()
|
zfs_autobackup=ZfsAutobackup(sys.argv)
|
||||||
sys.exit(zfs_autobackup.run())
|
sys.exit(zfs_autobackup.run())
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
coverage run --source bin.zfs_autobackup -m unittest ; coverage report
|
coverage run --source bin.zfs_autobackup -m unittest -v $@; coverage report
|
||||||
|
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
|
from basetest import *
|
||||||
|
|
||||||
#default test stuff
|
|
||||||
import unittest
|
|
||||||
from bin.zfs_autobackup import *
|
|
||||||
|
|
||||||
import subprocess
|
|
||||||
import time
|
|
||||||
|
|
||||||
print("THIS TEST REQUIRES SSH TO LOCALHOST")
|
print("THIS TEST REQUIRES SSH TO LOCALHOST")
|
||||||
|
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
|
from basetest import *
|
||||||
|
|
||||||
#default test stuff
|
|
||||||
import unittest
|
|
||||||
from bin.zfs_autobackup import *
|
|
||||||
|
|
||||||
#test specific
|
|
||||||
import random
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import pprint
|
|
||||||
|
|
||||||
class Thing:
|
class Thing:
|
||||||
def __init__(self, timestamp):
|
def __init__(self, timestamp):
|
||||||
|
@ -1,43 +1,26 @@
|
|||||||
|
from basetest import *
|
||||||
|
|
||||||
#default test stuff
|
|
||||||
import unittest
|
|
||||||
from bin.zfs_autobackup import *
|
|
||||||
|
|
||||||
import subprocess
|
|
||||||
import time
|
|
||||||
from pprint import pformat
|
|
||||||
|
|
||||||
class TestZfsNode(unittest.TestCase):
|
class TestZfsNode(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
print("Preparing zfs filesystems...")
|
prepare_zpools()
|
||||||
|
|
||||||
#need ram blockdevice
|
|
||||||
# subprocess.call("rmmod brd", shell=True)
|
|
||||||
subprocess.check_call("modprobe brd rd_size=512000", shell=True)
|
|
||||||
|
|
||||||
#remove old stuff
|
|
||||||
subprocess.call("zpool destroy test_source1", shell=True)
|
|
||||||
subprocess.call("zpool destroy test_source2", shell=True)
|
|
||||||
subprocess.call("zpool destroy test_target1", shell=True)
|
|
||||||
|
|
||||||
#create pools
|
|
||||||
subprocess.check_call("zpool create test_source1 /dev/ram0", shell=True)
|
|
||||||
subprocess.check_call("zpool create test_source2 /dev/ram1", shell=True)
|
|
||||||
subprocess.check_call("zpool create test_target1 /dev/ram2", shell=True)
|
|
||||||
|
|
||||||
#create test structure
|
|
||||||
subprocess.check_call("zfs create -p test_source1/fs1/sub", shell=True)
|
|
||||||
subprocess.check_call("zfs create -p test_source2/fs2/sub", shell=True)
|
|
||||||
subprocess.check_call("zfs create -p test_source2/fs3/sub", shell=True)
|
|
||||||
subprocess.check_call("zfs set autobackup:test=true test_source1/fs1", shell=True)
|
|
||||||
subprocess.check_call("zfs set autobackup:test=child test_source2/fs2", shell=True)
|
|
||||||
|
|
||||||
print("Prepare done")
|
|
||||||
|
|
||||||
return super().setUp()
|
return super().setUp()
|
||||||
|
|
||||||
|
|
||||||
|
def test_consistent_snapshot(self):
|
||||||
|
logger=Logger()
|
||||||
|
description="[Source]"
|
||||||
|
node=ZfsNode("test", logger, description=description)
|
||||||
|
|
||||||
|
with self.subTest("### no changes, no snapshot"):
|
||||||
|
node.consistent_snapshot(node.selected_datasets, "snap1", 100000)
|
||||||
|
s=pformat(subprocess.check_call("zfs list -r -t all" , shell=True))
|
||||||
|
print(s)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_getselected(self):
|
def test_getselected(self):
|
||||||
logger=Logger()
|
logger=Logger()
|
||||||
@ -51,7 +34,7 @@ class TestZfsNode(unittest.TestCase):
|
|||||||
(local): test_source1/fs1/sub,
|
(local): test_source1/fs1/sub,
|
||||||
(local): test_source2/fs2/sub]""")
|
(local): test_source2/fs2/sub]""")
|
||||||
|
|
||||||
#caching, so expect same result
|
#caching, so expect same result after changing it
|
||||||
subprocess.check_call("zfs set autobackup:test=true test_source2/fs3", shell=True)
|
subprocess.check_call("zfs set autobackup:test=true test_source2/fs3", shell=True)
|
||||||
self.assertEqual (s, """[(local): test_source1/fs1,
|
self.assertEqual (s, """[(local): test_source1/fs1,
|
||||||
(local): test_source1/fs1/sub,
|
(local): test_source1/fs1/sub,
|
||||||
@ -59,5 +42,7 @@ class TestZfsNode(unittest.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user