You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.1 KiB
80 lines
2.1 KiB
import unittest
|
|
from test.support import import_helper
|
|
import types
|
|
|
|
xxlimited = import_helper.import_module('xxlimited')
|
|
xxlimited_35 = import_helper.import_module('xxlimited_35')
|
|
|
|
|
|
class CommonTests:
|
|
module: types.ModuleType
|
|
|
|
def test_xxo_new(self):
|
|
xxo = self.module.Xxo()
|
|
|
|
def test_xxo_attributes(self):
|
|
xxo = self.module.Xxo()
|
|
with self.assertRaises(AttributeError):
|
|
xxo.foo
|
|
with self.assertRaises(AttributeError):
|
|
del xxo.foo
|
|
|
|
xxo.foo = 1234
|
|
self.assertEqual(xxo.foo, 1234)
|
|
|
|
del xxo.foo
|
|
with self.assertRaises(AttributeError):
|
|
xxo.foo
|
|
|
|
def test_foo(self):
|
|
# the foo function adds 2 numbers
|
|
self.assertEqual(self.module.foo(1, 2), 3)
|
|
|
|
def test_str(self):
|
|
self.assertTrue(issubclass(self.module.Str, str))
|
|
self.assertIsNot(self.module.Str, str)
|
|
|
|
custom_string = self.module.Str("abcd")
|
|
self.assertEqual(custom_string, "abcd")
|
|
self.assertEqual(custom_string.upper(), "ABCD")
|
|
|
|
def test_new(self):
|
|
xxo = self.module.new()
|
|
self.assertEqual(xxo.demo("abc"), "abc")
|
|
|
|
|
|
class TestXXLimited(CommonTests, unittest.TestCase):
|
|
module = xxlimited
|
|
|
|
def test_xxo_demo(self):
|
|
xxo = self.module.Xxo()
|
|
other = self.module.Xxo()
|
|
self.assertEqual(xxo.demo("abc"), "abc")
|
|
self.assertEqual(xxo.demo(xxo), xxo)
|
|
self.assertEqual(xxo.demo(other), other)
|
|
self.assertEqual(xxo.demo(0), None)
|
|
|
|
def test_error(self):
|
|
with self.assertRaises(self.module.Error):
|
|
raise self.module.Error
|
|
|
|
|
|
class TestXXLimited35(CommonTests, unittest.TestCase):
|
|
module = xxlimited_35
|
|
|
|
def test_xxo_demo(self):
|
|
xxo = self.module.Xxo()
|
|
other = self.module.Xxo()
|
|
self.assertEqual(xxo.demo("abc"), "abc")
|
|
self.assertEqual(xxo.demo(0), None)
|
|
|
|
def test_roj(self):
|
|
# the roj function always fails
|
|
with self.assertRaises(SystemError):
|
|
self.module.roj(0)
|
|
|
|
def test_null(self):
|
|
null1 = self.module.Null()
|
|
null2 = self.module.Null()
|
|
self.assertNotEqual(null1, null2)
|