Blame tests/lbs_py_override_unittest.py

Packit Service 076464
#!/usr/bin/python3
Packit Service af52df
# -*- coding: utf-8 -*-
Packit Service af52df
Packit Service af52df
import unittest
Packit Service af52df
import copy
Packit Service af52df
import locale
Packit Service af52df
Packit Service af52df
from decimal import Decimal
Packit Service af52df
from locale_utils import get_avail_locales, requires_locales
Packit Service af52df
Packit Service af52df
from bytesize import Size
Packit Service af52df
Packit Service af52df
class SizeTestCase(unittest.TestCase):
Packit Service af52df
Packit Service af52df
    @classmethod
Packit Service af52df
    def setUpClass(cls):
Packit Service af52df
        unittest.TestCase.setUpClass()
Packit Service af52df
        cls.avail_locales = get_avail_locales()
Packit Service af52df
Packit Service af52df
    @requires_locales({'en_US.utf8'})
Packit Service af52df
    def setUp(self):
Packit Service af52df
        locale.setlocale(locale.LC_ALL,'en_US.utf8')
Packit Service af52df
        self.addCleanup(self._clean_up)
Packit Service af52df
Packit Service af52df
    def _clean_up(self):
Packit Service af52df
        locale.setlocale(locale.LC_ALL,'en_US.utf8')
Packit Service af52df
Packit Service af52df
    # test operator functions
Packit Service af52df
    def testOperatorPlus(self):
Packit Service af52df
        result = Size("1000 B") + Size("100 B")
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 1100
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result = Size("1000 B") + 10
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 1010
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result =  10 + Size("1000 B")
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 1010
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B")
Packit Service af52df
        size1 += Size("100 B")
Packit Service af52df
        actual = size1.get_bytes()
Packit Service af52df
        expected = 200
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B")
Packit Service af52df
        size1 += 100
Packit Service af52df
        actual = size1.get_bytes()
Packit Service af52df
        expected = 200
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        # TODO shouldn't be the result int?
Packit Service af52df
        int1 = 10
Packit Service af52df
        int1 += Size("100 B")
Packit Service af52df
        actual = int1.get_bytes()
Packit Service af52df
        expected = 110
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B") + None
Packit Service af52df
        self.assertEqual(size1.get_bytes(), 100)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testOperatorMinus(self):
Packit Service af52df
        result = Size("1000 B") - Size("100 B")
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 900
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result = Size("1000 B") - 10
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 990
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result = 10 - Size("100 B")
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = -90
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B")
Packit Service af52df
        size1 -= Size("10 B")
Packit Service af52df
        actual = size1.get_bytes()
Packit Service af52df
        expected = 90
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B")
Packit Service af52df
        size1 -= 10
Packit Service af52df
        actual = size1.get_bytes()
Packit Service af52df
        expected = 90
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        # TODO shouldn't be the result int?
Packit Service af52df
        int1 = 1000
Packit Service af52df
        int1 -= Size("100 B")
Packit Service af52df
        actual = int1.get_bytes()
Packit Service af52df
        expected = 900
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("100 B") - None
Packit Service af52df
        self.assertEqual(size1.get_bytes(), 100)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testOperatorMul(self):
Packit Service af52df
        result = Size("4 B") * 3
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 12
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result = 3 * Size("4 B")
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 12
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("4 B")
Packit Service af52df
        size1 *= 3
Packit Service af52df
        actual = size1.get_bytes()
Packit Service af52df
        expected = 12
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        int1 = 4
Packit Service af52df
        int1 *= Size("3 B")
Packit Service af52df
        actual = int1.get_bytes()
Packit Service af52df
        expected = 12
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testOperatorDiv(self):
Packit Service af52df
        actual = Size("100 B") / Size("10 B")
Packit Service af52df
        expected = Decimal("10")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("120 B") / Size("100 B")
Packit Service af52df
        expected = Decimal("1.2")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("120 B") // Size("100 B")
Packit Service af52df
        expected = Decimal("1")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("128 EiB") // Size("64 EiB")
Packit Service af52df
        expected = 2
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("100 B") / 10
Packit Service af52df
        expected = Decimal("10")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("120 B") / 100
Packit Service af52df
        expected = Decimal("1.2")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        actual = Size("128 EiB") // 2
Packit Service af52df
        expected = Size("64 EiB")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        result = Size("120 B") // 100
Packit Service af52df
        actual = result.get_bytes()
Packit Service af52df
        expected = 1
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("120 B")
Packit Service af52df
        size1 /= Size("100 B")
Packit Service af52df
        actual = size1
Packit Service af52df
        expected = Decimal("1.2")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("120 B")
Packit Service af52df
        size1 /= 100
Packit Service af52df
        actual = size1
Packit Service af52df
        expected = Decimal("1.2")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
Packit Service af52df
        size1 = Size("120 B")
Packit Service af52df
        size1 //= Size("100 B")
Packit Service af52df
        actual = size1
Packit Service af52df
        expected = Decimal("1")
Packit Service af52df
        self.assertEqual(actual, expected)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testDivMod(self):
Packit Service af52df
        size1 = Size("120 B")
Packit Service af52df
        q, mod = divmod(size1, Size("100 B"))
Packit Service af52df
Packit Service af52df
        self.assertEqual(q, 1)
Packit Service af52df
        self.assertEqual(mod, Size("20 B"))
Packit Service af52df
Packit Service af52df
        size1 = Size("250 MiB")
Packit Service af52df
        q, mod = divmod(size1, Size("100 MiB"))
Packit Service af52df
Packit Service af52df
        self.assertEqual(q, 2)
Packit Service af52df
        self.assertEqual(mod, Size("50 MiB"))
Packit Service af52df
Packit Service af52df
        size1 = Size("10 GiB") + Size("5 GiB")
Packit Service af52df
        q, mod = divmod(size1, 7)
Packit Service af52df
        self.assertEqual(q, 2300875337)
Packit Service af52df
        self.assertEqual(mod, 1)
Packit Service af52df
Packit Service af52df
    def testEquality(self):
Packit Service af52df
        size1 = Size("1 GiB")
Packit Service af52df
        size2 = Size("2 GiB")
Packit Service af52df
Packit Service af52df
        self.assertTrue(size1 == size1)
Packit Service af52df
        self.assertTrue(size2 == size2)
Packit Service af52df
        self.assertFalse(size1 == size2)
Packit Service af52df
        self.assertFalse(size2 == size1)
Packit Service af52df
Packit Service af52df
        self.assertFalse(size1 == None)
Packit Service af52df
        self.assertFalse(size1 == 0)
Packit Service af52df
Packit Service af52df
        size3 = Size(0)
Packit Service af52df
        self.assertTrue(size3 == 0)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testCompare(self):
Packit Service af52df
        size1 = Size("1 GiB")
Packit Service af52df
        size2 = Size("2 GiB")
Packit Service af52df
Packit Service af52df
        self.assertTrue(size2 > size1)
Packit Service af52df
        self.assertFalse(size1 > size2)
Packit Service af52df
        self.assertTrue(size2 >= size1)
Packit Service af52df
        self.assertFalse(size1 >= size2)
Packit Service af52df
        self.assertTrue(size1 >= size1)
Packit Service af52df
Packit Service af52df
        self.assertFalse(size2 < size1)
Packit Service af52df
        self.assertTrue(size1 < size2)
Packit Service af52df
        self.assertFalse(size2 <= size1)
Packit Service af52df
        self.assertTrue(size1 <= size2)
Packit Service af52df
        self.assertTrue(size1 <= size1)
Packit Service af52df
Packit Service af52df
        self.assertTrue(size1 > None)
Packit Service af52df
        self.assertTrue(size1 >= None)
Packit Service af52df
        self.assertFalse(size1 < None)
Packit Service af52df
        self.assertFalse(size1 <= None)
Packit Service af52df
        self.assertFalse(size1 == None)
Packit Service af52df
        self.assertTrue(size1 != None)
Packit Service af52df
Packit Service af52df
        size3 = Size(0)
Packit Service af52df
        self.assertTrue(size3 > None)
Packit Service af52df
        self.assertFalse(size3 < None)
Packit Service af52df
        self.assertTrue(size3 != None)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testBool(self):
Packit Service af52df
        size1 = Size("1 GiB")
Packit Service af52df
        size2 = Size(0)
Packit Service af52df
Packit Service af52df
        self.assertTrue(size1)
Packit Service af52df
        self.assertFalse(size2)
Packit Service af52df
    #enddef
Packit Service af52df
Packit Service af52df
    def testAbs(self):
Packit Service af52df
        size1 = Size("1 GiB")
Packit Service af52df
        self.assertEqual(size1, abs(size1))
Packit Service af52df
Packit Service af52df
        size2 = Size("-2 GiB")
Packit Service af52df
        self.assertEqual(size2, -1 * abs(size2))
Packit Service af52df
Packit Service af52df
    def testNeg(self):
Packit Service af52df
        size1 = Size("1 KiB")
Packit Service af52df
        self.assertEqual(-1024, -size1)
Packit Service af52df
Packit Service af52df
        size1 = Size("-1 KiB")
Packit Service af52df
        self.assertEqual(1024, -size1)
Packit Service af52df
Packit Service af52df
    def testDeepCopy(self):
Packit Service af52df
        size1 = Size("1 GiB")
Packit Service af52df
        size2 = copy.deepcopy(size1)
Packit Service af52df
Packit Service af52df
        self.assertIsNot(size1, size2)
Packit Service af52df
        self.assertEqual(size1, size2)
Packit Service af52df
Packit Service af52df
    def testHashable(self):
Packit Service af52df
        size = Size("1 KiB")
Packit Service af52df
        hs = hash(size)
Packit Service af52df
        self.assertIsNotNone(hs)
Packit Service af52df
Packit Service af52df
        size_set = set((Size("1 KiB"), Size("1 KiB"), Size("1 KiB"), Size("2 KiB"), Size(0)))
Packit Service af52df
        self.assertEqual(len(size_set), 3)
Packit Service af52df
Packit Service af52df
    @requires_locales({'cs_CZ.UTF-8', 'ps_AF.UTF-8', 'en_US.UTF-8'})
Packit Service af52df
    def testConvertTo(self):
Packit Service af52df
        size = Size("1.5 KiB")
Packit Service af52df
        conv = size.convert_to("KiB")
Packit Service af52df
        self.assertEqual(conv, Decimal("1.5"))
Packit Service af52df
Packit Service af52df
        locale.setlocale(locale.LC_ALL,'cs_CZ.UTF-8')
Packit Service af52df
        size = Size("1.5 KiB")
Packit Service af52df
        conv = size.convert_to("KiB")
Packit Service af52df
        self.assertEqual(conv, Decimal("1.5"))
Packit Service af52df
Packit Service af52df
        # this persian locale uses a two-byte unicode character for the radix
Packit Service af52df
        locale.setlocale(locale.LC_ALL, 'ps_AF.UTF-8')
Packit Service af52df
        size = Size("1.5 KiB")
Packit Service af52df
        conv = size.convert_to("KiB")
Packit Service af52df
        self.assertEqual(conv, Decimal("1.5"))
Packit Service af52df
Packit Service af52df
        locale.setlocale(locale.LC_ALL,'en_US.UTF-8')
Packit Service af52df
Packit Service af52df
#endclass
Packit Service af52df
Packit Service af52df
# script entry point
Packit Service af52df
if __name__=='__main__':
Packit Service af52df
    unittest.main()
Packit Service af52df
#endif