ungana

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README

commit 66b10504dcb39d6fa97e4ec63b708d4f7aaed384
parent c74f0c12317a67604574494e376d95debea77779
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Fri, 14 Nov 2025 10:25:39 +0300

test: add tests for missing tests

Diffstat:
Mtests/cmd/test_args_parser.py | 16++++++++++++++++
Atests/store/__init__.py | 0
Atests/store/test_fs_store.py | 27+++++++++++++++++++++++++++
Atests/store/test_resolve_backend.py | 28++++++++++++++++++++++++++++
Atests/store/test_wala_store.py | 37+++++++++++++++++++++++++++++++++++++
5 files changed, 108 insertions(+), 0 deletions(-)

diff --git a/tests/cmd/test_args_parser.py b/tests/cmd/test_args_parser.py @@ -56,6 +56,22 @@ class TestArgsParser(unittest.TestCase): self.assertEqual(args.presenter, "http://presenter.com") + @patch("sys.argv", ["prog", "merge", "--input-dir", "./events", "--output", "merged.ics"]) + def test_parse_args_merge_command(self): + args = self.args_parser.parse_args() + self.assertEqual(args.command, "merge") + self.assertEqual(args.input_dir, "./events") + self.assertEqual(args.output, "merged.ics") + + @patch("sys.argv", ["prog", "merge"]) + def test_parse_args_merge_command_defaults(self): + args = self.args_parser.parse_args() + self.assertEqual(args.command, "merge") + self.assertEqual(args.input_dir, "./events") + self.assertEqual(args.output, "merged_events.ics") + + + if __name__ == "__main__": unittest.main() diff --git a/tests/store/__init__.py b/tests/store/__init__.py diff --git a/tests/store/test_fs_store.py b/tests/store/test_fs_store.py @@ -0,0 +1,27 @@ +import tempfile +import unittest +from ungana.store.fs_store import UnganaFSStore + + +class TestUnganaFSStore(unittest.TestCase): + + def test_fs_store_put_and_get(self): + with tempfile.TemporaryDirectory() as tmpdir: + store = UnganaFSStore() + + base_uri = tmpdir + key = "testfile.bin" + data = b"foo bar" + + result_uri = store.put(base_uri, key, data) + self.assertTrue(result_uri.startswith("file://")) + + retrieved = store.get(base_uri, key) + self.assertEqual(retrieved, b"foo bar") + + def test_fs_store_get_missing_raises(self): + with tempfile.TemporaryDirectory() as tmpdir: + store = UnganaFSStore() + + with self.assertRaises(FileNotFoundError): + store.get(tmpdir, "does_not_exist.bin") diff --git a/tests/store/test_resolve_backend.py b/tests/store/test_resolve_backend.py @@ -0,0 +1,27 @@ +import unittest +from ungana.store.fs_store import UnganaFSStore +from ungana.store.resolve import resolve_backend_store +from ungana.store.wala_store import UnganaWalaStore + + +class TestResolveBackendStore(unittest.TestCase): + + def test_resolve_fs_store_file_scheme(self): + store = resolve_backend_store("file:///tmp/data") + self.assertIsInstance(store, UnganaFSStore) + + def test_resolve_fs_store_no_scheme(self): + store = resolve_backend_store("/tmp/data") + self.assertIsInstance(store, UnganaFSStore) + + def test_resolve_wala_store_http(self): + store = resolve_backend_store("http://wala.ungana.com/storage") + self.assertIsInstance(store, UnganaWalaStore) + + def test_resolve_wala_store_https(self): + store = resolve_backend_store("https://wala.ungana.com/storage") + self.assertIsInstance(store, UnganaWalaStore) + + def test_resolve_invalid_scheme(self): + with self.assertRaises(ValueError): + resolve_backend_store("ftp://walaaaas.com/storage") +\ No newline at end of file diff --git a/tests/store/test_wala_store.py b/tests/store/test_wala_store.py @@ -0,0 +1,37 @@ +import unittest +from unittest.mock import patch, MagicMock +from ungana.store.wala_store import UnganaWalaStore + + +class TestUnganaWalaStore(unittest.TestCase): + + @patch("ungana.store.wala_store.requests.put") + def test_wala_store_put(self, mock_put): + mock_put.return_value = MagicMock(status_code=200, text="digest123") + + store = UnganaWalaStore() + url = "https://wala.ungana.com/store" + key = "ignored_key" + data = b"foobar" + + result_url = store.put(url, key, data) + self.assertEqual(result_url, "https://wala.ungana.com/store/digest123") + mock_put.assert_called_once_with(url, data=data, timeout=10) + + @patch("ungana.store.wala_store.requests.get") + def test_wala_store_get(self, mock_get): + mock_get.return_value = MagicMock(status_code=200, content=b"ABCDEF") + + store = UnganaWalaStore() + base_url = "https://wala.ungana.com/store" + key = "digest123" + + result = store.get(base_url, key) + self.assertEqual(result, b"ABCDEF") + mock_get.assert_called_once_with( + "https://wala.ungana.com/store/digest123", timeout=10 + ) + + +if __name__ == "__main__": + unittest.main()