]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
pybind/mgr/snap_schedule: add unit tests
authorJan Fajerski <jfajerski@suse.com>
Thu, 14 May 2020 10:06:46 +0000 (12:06 +0200)
committerJan Fajerski <jfajerski@suse.com>
Thu, 27 Aug 2020 13:55:46 +0000 (15:55 +0200)
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
src/pybind/mgr/snap_schedule/tests/conftest.py [new file with mode: 0644]
src/pybind/mgr/snap_schedule/tests/fs/test_schedule.py
src/pybind/mgr/snap_schedule/tox.ini

diff --git a/src/pybind/mgr/snap_schedule/tests/conftest.py b/src/pybind/mgr/snap_schedule/tests/conftest.py
new file mode 100644 (file)
index 0000000..ceaec8f
--- /dev/null
@@ -0,0 +1,27 @@
+import pytest
+import sqlite3
+from fs.schedule import Schedule
+
+
+# simple_schedule fixture returns schedules without any timing arguments
+# the tuple values correspong to ctor args for Schedule
+simple_schedules = [
+    ('/foo', '6h', '', 'fs_name', '/foo'),
+    ('/foo', '24h', '', 'fs_name', '/foo'),
+    ('/bar', '1d', '', 'fs_name', '/bar'),
+    ('/fnord', '1w', '', 'fs_name', '/fnord'),
+]
+@pytest.fixture(params=simple_schedules)
+def simple_schedule(request):
+    return Schedule(*request.param)
+
+@pytest.fixture
+def db_and_simple_schedules():
+    db = sqlite3.connect(':memory:',
+                         check_same_thread=False)
+    with db:
+        db.row_factory = sqlite3.Row
+        db.execute("PRAGMA FOREIGN_KEYS = 1")
+        db.executescript(Schedule.CREATE_TABLES)
+    return db, [Schedule(*s) for s in simple_schedules]
+
index 156f9c49e45f27290cb49212868f1c48307448ca..2adbc6b49af820a1e5157aa28ea0175708c492e2 100644 (file)
@@ -1,5 +1,28 @@
-import pytest
-from pathlib import PurePosixPath
-from fs import schedule
+import datetime
+from fs.schedule import Schedule
 
 
+class TestSchedule(object):
+
+    def test_start_default_midnight(self, simple_schedule):
+        now = datetime.datetime.now(datetime.timezone.utc)
+        assert simple_schedule.start.second == 0
+        assert simple_schedule.start.minute == 0
+        assert simple_schedule.start.hour == 0
+        assert simple_schedule.start.day == now.day
+        assert simple_schedule.start.month == now.month
+        assert simple_schedule.start.year == now.year
+        assert simple_schedule.start.tzinfo == now.tzinfo
+
+    def test_created_now(self, simple_schedule):
+        now = datetime.datetime.now(datetime.timezone.utc)
+        assert simple_schedule.created.minute == now.minute
+        assert simple_schedule.created.hour == now.hour
+        assert simple_schedule.created.day == now.day
+        assert simple_schedule.created.month == now.month
+        assert simple_schedule.created.year == now.year
+        assert simple_schedule.created.tzinfo == now.tzinfo
+
+    def test_repeat_valid(self, simple_schedule):
+        repeat = simple_schedule.repeat
+        assert isinstance(repeat, int)
index 953895dd9d5855038ffed6fcaa295ded3370b9ff..86c8481f1e0ba08aec368160b313f9544cc40ac8 100644 (file)
@@ -1,5 +1,5 @@
 [tox]
-envlist = py27,py3
+envlist = py3
 skipsdist = true
 ; toxworkdir = {env:CEPH_BUILD_DIR}/snap-schedule
 ; minversion = 2.8.1