File: test_ckbytelist.py

package info (click to toggle)
pykcs11 1.5.18-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 808 kB
  • sloc: python: 6,520; cpp: 1,424; ansic: 1,360; makefile: 77; sh: 18
file content (112 lines) | stat: -rw-r--r-- 3,225 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# pylint: disable=missing-module-docstring
# pylint: disable=missing-class-docstring
# pylint: disable=missing-function-docstring

import unittest

import PyKCS11


class Testutil(unittest.TestCase):
    def test_empty(self):
        ck = PyKCS11.ckbytelist()
        self.assertSequenceEqual(ck, [])

    def test_resize(self):
        ck = PyKCS11.ckbytelist()
        ck.resize(5)
        self.assertSequenceEqual(ck, [0, 0, 0, 0, 0])

    def test_data(self):
        ck = PyKCS11.ckbytelist([0] * 5)
        for index in range(5):
            ck[index] = index
        self.assertSequenceEqual(ck, [0, 1, 2, 3, 4])

    def test_append(self):
        ck = PyKCS11.ckbytelist()
        for index in range(5):
            ck.append(index)
        self.assertSequenceEqual(ck, [0, 1, 2, 3, 4])

    def test_length0(self):
        ck = PyKCS11.ckbytelist()
        self.assertEqual(len(ck), 0)

    def test_length5(self):
        ck = PyKCS11.ckbytelist([0] * 5)
        self.assertEqual(len(ck), 5)

    def test_string(self):
        ck = PyKCS11.ckbytelist()
        ck.resize(5)
        for index in range(5):
            ck[index] = index
        self.assertEqual(str(ck), "[0, 1, 2, 3, 4]")

    def test_init_list0(self):
        ck = PyKCS11.ckbytelist([])
        self.assertSequenceEqual(ck, [])

    def test_init_list1(self):
        ck = PyKCS11.ckbytelist([1])
        self.assertSequenceEqual(ck, [1])

    def test_init_list5(self):
        ck = PyKCS11.ckbytelist([0, 1, 2, 3, 4])
        self.assertSequenceEqual(ck, [0, 1, 2, 3, 4])

    def test_init_str(self):
        ck = PyKCS11.ckbytelist("ABC")
        self.assertSequenceEqual(ck, [65, 66, 67])

    def test_init_bytes(self):
        ck = PyKCS11.ckbytelist(b"ABC")
        self.assertSequenceEqual(ck, [65, 66, 67])

    def test_init_ckbytelist(self):
        ck1 = PyKCS11.ckbytelist(b"ABC")
        ck2 = PyKCS11.ckbytelist(ck1)
        self.assertSequenceEqual(ck2, [65, 66, 67])

    def test_unknown_format(self):
        with self.assertRaises(PyKCS11.PyKCS11Error) as cm:
            PyKCS11.ckbytelist({})

        the_exception = cm.exception
        self.assertEqual(the_exception.value, -3)

        # Python 3 and later
        type_str = "<class 'dict'>"

        self.assertEqual(the_exception.text, type_str)
        self.assertEqual(str(the_exception), f"Unknown format ({type_str})")

    def test_concat(self):
        a = PyKCS11.ckbytelist("ABC")
        b = PyKCS11.ckbytelist("DEF")
        c = a + b
        self.assertSequenceEqual(c, [65, 66, 67] + [68, 69, 70])

    def test_add(self):
        a = PyKCS11.ckbytelist("ABC")
        b = PyKCS11.ckbytelist("DEF")
        a += b
        self.assertSequenceEqual(a, [65, 66, 67] + [68, 69, 70])

    def test_lowlevel(self):
        ck = PyKCS11.LowLevel.ckbytelist()
        self.assertSequenceEqual(ck, [])

        ck = PyKCS11.LowLevel.ckbytelist([0, 1, 2, 3, 4])
        self.assertSequenceEqual(ck, [0, 1, 2, 3, 4])

        with self.assertRaises(TypeError):
            ck = PyKCS11.LowLevel.ckbytelist("ABC")

        ck = PyKCS11.LowLevel.ckbytelist(b"ABC")
        self.assertSequenceEqual(ck, [65, 66, 67])


if __name__ == "__main__":
    unittest.main()