Skip to content

Commit e06dc41

Browse files
rkschameryliaog
authored andcommitted
add test_parse_quantity
1 parent 0ea3c06 commit e06dc41

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

kubernetes/e2e_test/test_utils.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,49 @@ def test_create_from_list_in_multi_resource_yaml_namespaced(self):
611611

612612
class TestUtilsUnitTests(unittest.TestCase):
613613

614+
def test_parse_quantity(self):
615+
# == trivial returns ==
616+
self.assertEqual(quantity.parse_quantity(Decimal(1)), Decimal(1))
617+
self.assertEqual(quantity.parse_quantity(float(1)), Decimal(1))
618+
self.assertEqual(quantity.parse_quantity(1), Decimal(1))
619+
620+
# == exceptions ==
621+
self.assertRaises(
622+
ValueError, lambda: quantity.parse_quantity("1000kb")
623+
)
624+
self.assertRaises(
625+
ValueError, lambda: quantity.parse_quantity("1000ki")
626+
)
627+
self.assertRaises(ValueError, lambda: quantity.parse_quantity("1000foo"))
628+
self.assertRaises(ValueError, lambda: quantity.parse_quantity("foo"))
629+
630+
# == no suffix ==
631+
self.assertEqual(quantity.parse_quantity("1000"), Decimal(1000))
632+
633+
# == base 1024 ==
634+
self.assertEqual(quantity.parse_quantity("1Ki"), Decimal(1024))
635+
self.assertEqual(quantity.parse_quantity("1Mi"), Decimal(1024**2))
636+
self.assertEqual(quantity.parse_quantity("1Gi"), Decimal(1024**3))
637+
self.assertEqual(quantity.parse_quantity("1Ti"), Decimal(1024**4))
638+
self.assertEqual(quantity.parse_quantity("1Pi"), Decimal(1024**5))
639+
self.assertEqual(quantity.parse_quantity("1Ei"), Decimal(1024**6))
640+
self.assertEqual(quantity.parse_quantity("1024Ki"), Decimal(1024**2))
641+
self.assertEqual(quantity.parse_quantity("0.5Ki"), Decimal(512))
642+
643+
# == base 1000 ==
644+
self.assertAlmostEqual(quantity.parse_quantity("1n"), Decimal(0.000_000_001))
645+
self.assertAlmostEqual(quantity.parse_quantity("1u"), Decimal(0.000_001))
646+
self.assertAlmostEqual(quantity.parse_quantity("1m"), Decimal(0.001))
647+
self.assertEqual(quantity.parse_quantity("1k"), Decimal(1_000))
648+
self.assertEqual(quantity.parse_quantity("1M"), Decimal(1_000_000))
649+
self.assertEqual(quantity.parse_quantity("1G"), Decimal(1_000_000_000))
650+
self.assertEqual(quantity.parse_quantity("1T"), Decimal(1_000_000_000_000))
651+
self.assertEqual(quantity.parse_quantity("1P"), Decimal(1_000_000_000_000_000))
652+
self.assertEqual(
653+
quantity.parse_quantity("1E"), Decimal(1_000_000_000_000_000_000))
654+
self.assertEqual(quantity.parse_quantity("1000k"), Decimal(1_000_000))
655+
self.assertEqual(quantity.parse_quantity("500k"), Decimal(500_000))
656+
614657
def test_format_quantity(self):
615658
"""Unit test for quantity.format_quantity. Testing the different SI suffixes and
616659
function should return the expected string"""

0 commit comments

Comments
 (0)