60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
# dabdatasync (c) by chacha
|
|
#
|
|
# dabdatasync is licensed under a
|
|
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
|
|
#
|
|
# You should have received a copy of the license along with this
|
|
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
|
|
|
import unittest
|
|
from os import chdir
|
|
from io import StringIO
|
|
from contextlib import redirect_stdout, redirect_stderr
|
|
from pathlib import Path
|
|
import pprint
|
|
|
|
print(__name__)
|
|
print(__package__)
|
|
|
|
from src import dabdatasync
|
|
|
|
testdir_path = Path(__file__).parent.resolve()
|
|
chdir(testdir_path.parent.resolve())
|
|
|
|
|
|
class TestDabDataSync(unittest.TestCase):
|
|
def setUp(self) -> None:
|
|
chdir(testdir_path.parent.resolve())
|
|
|
|
def test_version(self):
|
|
self.assertNotEqual(dabdatasync.__version__, "?.?.?")
|
|
|
|
def test_load_nextcloud(self):
|
|
dabdatasync.I_DataSync.manifest_path = testdir_path / "test_manifest_nextcloud.json"
|
|
datasync = dabdatasync.DataSync_Factory.get_DataSync()
|
|
self.assertIsInstance(datasync, dabdatasync.I_DataSync)
|
|
self.assertIsInstance(datasync, dabdatasync.C_DataSync_NextCloud)
|
|
datasync.read_data()
|
|
pprint.pprint(datasync.ar_datasync_record)
|
|
datasync.write_data()
|
|
|
|
def test_load_empty(self):
|
|
dabdatasync.I_DataSync.manifest_path = testdir_path / "test_manifest_empty.json"
|
|
datasync = dabdatasync.DataSync_Factory.get_DataSync()
|
|
self.assertIsNone(datasync)
|
|
|
|
def test_load_nextcloud_disabled(self):
|
|
dabdatasync.I_DataSync.manifest_path = testdir_path / "test_manifest_nextcloud_disabled.json"
|
|
datasync = dabdatasync.DataSync_Factory.get_DataSync()
|
|
self.assertIsNone(datasync)
|
|
|
|
def test_load_invalid(self):
|
|
dabdatasync.I_DataSync.manifest_path = testdir_path / "test_manifest_invalid.json"
|
|
with self.assertRaises(dabdatasync.DataSyncException_InvalidManifest):
|
|
dabdatasync.DataSync_Factory.get_DataSync()
|
|
|
|
def test_load_nextcloud_invalid(self):
|
|
dabdatasync.I_DataSync.manifest_path = testdir_path / "test_manifest_nextcloud_invalid.json"
|
|
with self.assertRaises(dabdatasync.DataSyncException_InvalidManifest):
|
|
dabdatasync.DataSync_Factory.get_DataSync()
|