Skip to content

Commit 0f3f8ec

Browse files
committed
add test_parse_quantity
1 parent d1deeeb commit 0f3f8ec

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

kubernetes/e2e_test/test_utils.py

+43
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,49 @@ def test_create_from_list_in_multi_resource_yaml_namespaced(self):
569569

570570
class TestUtilsUnitTests(unittest.TestCase):
571571

572+
def test_parse_quantity(self):
573+
# == trivial returns ==
574+
self.assertEqual(quantity.parse_quantity(Decimal(1)), Decimal(1))
575+
self.assertEqual(quantity.parse_quantity(float(1)), Decimal(1))
576+
self.assertEqual(quantity.parse_quantity(1), Decimal(1))
577+
578+
# == exceptions ==
579+
self.assertRaises(
580+
ValueError, lambda: quantity.parse_quantity("1000kb")
581+
)
582+
self.assertRaises(
583+
ValueError, lambda: quantity.parse_quantity("1000ki")
584+
)
585+
self.assertRaises(ValueError, lambda: quantity.parse_quantity("1000foo"))
586+
self.assertRaises(ValueError, lambda: quantity.parse_quantity("foo"))
587+
588+
# == no suffix ==
589+
self.assertEqual(quantity.parse_quantity("1000"), Decimal(1000))
590+
591+
# == base 1024 ==
592+
self.assertEqual(quantity.parse_quantity("1Ki"), Decimal(1024))
593+
self.assertEqual(quantity.parse_quantity("1Mi"), Decimal(1024**2))
594+
self.assertEqual(quantity.parse_quantity("1Gi"), Decimal(1024**3))
595+
self.assertEqual(quantity.parse_quantity("1Ti"), Decimal(1024**4))
596+
self.assertEqual(quantity.parse_quantity("1Pi"), Decimal(1024**5))
597+
self.assertEqual(quantity.parse_quantity("1Ei"), Decimal(1024**6))
598+
self.assertEqual(quantity.parse_quantity("1024Ki"), Decimal(1024**2))
599+
self.assertEqual(quantity.parse_quantity("0.5Ki"), Decimal(512))
600+
601+
# == base 1000 ==
602+
self.assertAlmostEqual(quantity.parse_quantity("1n"), Decimal(0.000_000_001))
603+
self.assertAlmostEqual(quantity.parse_quantity("1u"), Decimal(0.000_001))
604+
self.assertAlmostEqual(quantity.parse_quantity("1m"), Decimal(0.001))
605+
self.assertEqual(quantity.parse_quantity("1k"), Decimal(1_000))
606+
self.assertEqual(quantity.parse_quantity("1M"), Decimal(1_000_000))
607+
self.assertEqual(quantity.parse_quantity("1G"), Decimal(1_000_000_000))
608+
self.assertEqual(quantity.parse_quantity("1T"), Decimal(1_000_000_000_000))
609+
self.assertEqual(quantity.parse_quantity("1P"), Decimal(1_000_000_000_000_000))
610+
self.assertEqual(
611+
quantity.parse_quantity("1E"), Decimal(1_000_000_000_000_000_000))
612+
self.assertEqual(quantity.parse_quantity("1000k"), Decimal(1_000_000))
613+
self.assertEqual(quantity.parse_quantity("500k"), Decimal(500_000))
614+
572615
def test_format_quantity(self):
573616
"""Unit test for quantity.format_quantity. Testing the different SI suffixes and
574617
function should return the expected string"""

0 commit comments

Comments
 (0)