aboutsummaryrefslogtreecommitdiffstats
path: root/test/utils
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-03-05 19:25:29 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-03-05 19:25:29 +0100
commit48b6081d0092e9c5a1b0ad79bdde2e51649bf61a (patch)
tree634198c34aae3c0306ce30ac7452abd7b53a14e8 /test/utils
parent91437ba89d35bf482f3d9671bb99ef2fc69f5985 (diff)
parente4845c627e97a6d125bf33d9e7a4a8d373d7fc4a (diff)
downloadbsfs-0.23.03.tar.gz
bsfs-0.23.03.tar.bz2
bsfs-0.23.03.zip
Merge branch 'develop'v0.23.03
Diffstat (limited to 'test/utils')
-rw-r--r--test/utils/test_commons.py22
-rw-r--r--test/utils/test_uri.py24
-rw-r--r--test/utils/test_uuid.py19
3 files changed, 44 insertions, 21 deletions
diff --git a/test/utils/test_commons.py b/test/utils/test_commons.py
index ce73788..29e3046 100644
--- a/test/utils/test_commons.py
+++ b/test/utils/test_commons.py
@@ -1,14 +1,9 @@
-"""
-Part of the tagit test suite.
-A copy of the license is provided with the project.
-Author: Matthias Baumgartner, 2022
-"""
# imports
import unittest
# objects to test
-from bsfs.utils.commons import typename
+from bsfs.utils.commons import typename, normalize_args
## code ##
@@ -21,6 +16,21 @@ class TestCommons(unittest.TestCase):
self.assertEqual(typename(123), 'int')
self.assertEqual(typename(None), 'NoneType')
+ def test_normalize_args(self):
+ # one argument
+ self.assertEqual(normalize_args(1), (1, ))
+ # pass as arguments
+ self.assertEqual(normalize_args(1,2,3), (1,2,3))
+ # pass as iterator
+ self.assertEqual(normalize_args(iter([1,2,3])), (1,2,3))
+ # pass as generator
+ self.assertEqual(normalize_args((i for i in range(1, 4))), (1,2,3))
+ self.assertEqual(normalize_args(i for i in range(1, 4)), (1,2,3)) # w/o brackets
+ # pass as iterable
+ self.assertEqual(normalize_args([1,2,3]), (1,2,3))
+ # pass an iterable with a single item
+ self.assertEqual(normalize_args([1]), (1, ))
+
## main ##
diff --git a/test/utils/test_uri.py b/test/utils/test_uri.py
index 770e65a..1c4c9f9 100644
--- a/test/utils/test_uri.py
+++ b/test/utils/test_uri.py
@@ -1,9 +1,4 @@
-"""
-Part of the tagit test suite.
-A copy of the license is provided with the project.
-Author: Matthias Baumgartner, 2022
-"""
# imports
import operator
import unittest
@@ -40,6 +35,16 @@ class TestURI(unittest.TestCase):
self.assertTrue(URI.is_parseable('telnet://192.0.2.16:80/'))
self.assertTrue(URI.is_parseable('urn:oasis:names:specification:docbook:dtd:xml:4.1.2'))
+ # some characters are prohibited
+ self.assertFalse(URI.is_parseable('http://example.com/foo<bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo>bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo{bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo}bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo|bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo^bar'))
+ self.assertFalse(URI.is_parseable('http://example.com/foo\\bar'))
+
# uri cannot end with a scheme delimiter
self.assertFalse(URI.is_parseable('http://'))
# port must be a number
@@ -164,10 +169,10 @@ class TestURI(unittest.TestCase):
def test_overloaded(self):
# composition
- self.assertIsInstance(URI('http://user@www.example.com:1234/{}/path1?{}#fragment') + 'hello', URI)
- self.assertIsInstance(URI('http://user@www.example.com:1234/{}/path1?{}#fragment') * 2, URI)
- self.assertIsInstance(2 * URI('http://user@www.example.com:1234/{}/path1?{}#fragment'), URI) # rmul
- self.assertIsInstance(URI('http://user@www.example.com:1234/{}/path1?{}#fragment').join(['hello', 'world']) , URI)
+ self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment') + 'hello', URI)
+ self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment') * 2, URI)
+ self.assertIsInstance(2 * URI('http://user@www.example.com:1234/path0/path1?query#fragment'), URI) # rmul
+ self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').join(['hello', 'world']) , URI)
# stripping
self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').strip(), URI)
self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').lstrip(), URI)
@@ -176,7 +181,6 @@ class TestURI(unittest.TestCase):
self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').lower(), URI)
self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').upper(), URI)
# formatting
- self.assertIsInstance(URI('http://user@www.example.com:1234/{}/path1?{}#fragment').format('hello', 'world'), URI)
self.assertIsInstance(URI('http://user@www.example.com:1234/%s/path1?%s#fragment') % ('hello', 'world'), URI)
self.assertIsInstance(URI('http://user@www.example.com:1234/path0/path1?query#fragment').replace('path0', 'pathX'), URI)
diff --git a/test/utils/test_uuid.py b/test/utils/test_uuid.py
index 49176d4..8f519d9 100644
--- a/test/utils/test_uuid.py
+++ b/test/utils/test_uuid.py
@@ -1,9 +1,4 @@
-"""
-Part of the tagit test suite.
-A copy of the license is provided with the project.
-Author: Matthias Baumgartner, 2022
-"""
# imports
import os
import re
@@ -83,6 +78,20 @@ class TestUCID(unittest.TestCase):
def test_from_path(self):
self.assertEqual(UCID.from_path(self._path), self._checksum)
+ def test_from_buffer(self):
+ with open(self._path, 'rb') as ifile:
+ self.assertEqual(UCID.from_buffer(ifile), self._checksum)
+ with open(self._path) as ifile:
+ self.assertEqual(UCID.from_buffer(ifile), self._checksum)
+
+ def test_from_bytes(self):
+ with open(self._path, 'rb') as ifile:
+ self.assertEqual(UCID.from_bytes(ifile.read()), self._checksum)
+
+ def test_from_dict(self):
+ self.assertEqual(UCID.from_dict({'hello': 'world', 'foo': 1234, 'bar': False}),
+ '8d2544395a0d2827e3d9ce8cd619d5e3f801e8126bf3f93ee5abd38158959585')
+
## main ##