• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import unittest
2from test.support import import_helper
3import types
4
5xxlimited = import_helper.import_module('xxlimited')
6xxlimited_35 = import_helper.import_module('xxlimited_35')
7
8
9class CommonTests:
10    module: types.ModuleType
11
12    def test_xxo_new(self):
13        xxo = self.module.Xxo()
14
15    def test_xxo_attributes(self):
16        xxo = self.module.Xxo()
17        with self.assertRaises(AttributeError):
18            xxo.foo
19        with self.assertRaises(AttributeError):
20            del xxo.foo
21
22        xxo.foo = 1234
23        self.assertEqual(xxo.foo, 1234)
24
25        del xxo.foo
26        with self.assertRaises(AttributeError):
27            xxo.foo
28
29    def test_foo(self):
30        # the foo function adds 2 numbers
31        self.assertEqual(self.module.foo(1, 2), 3)
32
33    def test_str(self):
34        self.assertTrue(issubclass(self.module.Str, str))
35        self.assertIsNot(self.module.Str, str)
36
37        custom_string = self.module.Str("abcd")
38        self.assertEqual(custom_string, "abcd")
39        self.assertEqual(custom_string.upper(), "ABCD")
40
41    def test_new(self):
42        xxo = self.module.new()
43        self.assertEqual(xxo.demo("abc"), "abc")
44
45
46class TestXXLimited(CommonTests, unittest.TestCase):
47    module = xxlimited
48
49    def test_xxo_demo(self):
50        xxo = self.module.Xxo()
51        other = self.module.Xxo()
52        self.assertEqual(xxo.demo("abc"), "abc")
53        self.assertEqual(xxo.demo(xxo), xxo)
54        self.assertEqual(xxo.demo(other), other)
55        self.assertEqual(xxo.demo(0), None)
56
57    def test_error(self):
58        with self.assertRaises(self.module.Error):
59            raise self.module.Error
60
61
62class TestXXLimited35(CommonTests, unittest.TestCase):
63    module = xxlimited_35
64
65    def test_xxo_demo(self):
66        xxo = self.module.Xxo()
67        other = self.module.Xxo()
68        self.assertEqual(xxo.demo("abc"), "abc")
69        self.assertEqual(xxo.demo(0), None)
70
71    def test_roj(self):
72        # the roj function always fails
73        with self.assertRaises(SystemError):
74            self.module.roj(0)
75
76    def test_null(self):
77        null1 = self.module.Null()
78        null2 = self.module.Null()
79        self.assertNotEqual(null1, null2)
80