Module tests.test_builder

Classes

class TestBuilder (methodName='runTest')
Expand source code
class TestBuilder(unittest.TestCase):
        """Tests for the various methods of Builder"""

        no_args: DataNode
        string_args: DataNode
        int_args: DataNode
        float_args: DataNode

        def setUp(self) -> None:
                print("PRINT ME")
                self.float_args = DataNode("doubargs", None, ["0.", "-0.8", "15.36", "3.14159"], [])
                self.string_args = DataNode("strargs", None, ["foo", "bar"], [])
                self.int_args = DataNode("intargs", None, ["1", "2", "3", "-1"], [self.float_args])
                self.no_args = DataNode("argless", None, [], [self.string_args, self.int_args])
                return super().setUp()

        def test_pass(self):
                return

        # MARK: build_string()
        def test_build_string_no_args(self) -> None:
                try:
                        Builder.build_string(self.no_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass
        
        def test_build_string_in_range(self) -> None:
                try:
                        self.assertEqual("foo", Builder.build_string(self.string_args, 0))
                        self.assertEqual("3.14159", Builder.build_string(self.float_args, 3))
                except BuilderError:
                        self.fail()

        def test_build_string_out_of_range(self) -> None:
                try:
                        Builder.build_string(self.string_args, 2)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass



        # MARK: build_int()
        def test_build_int_no_args(self) -> None:
                try:
                        Builder.build_int(self.no_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass
        
        def test_build_int_in_range(self) -> None:
                try:
                        self.assertEqual(3, Builder.build_int(self.int_args, 2))
                        self.assertEqual(-1, Builder.build_int(self.int_args, 3))
                except BuilderError:
                        self.fail()

        def test_build_int_out_of_range(self) -> None:
                try:
                        Builder.build_int(self.int_args, 4)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass

        def test_build_int_string_value(self) -> None:
                try:
                        Builder.build_int(self.string_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass

        def test_build_int_float_value(self) -> None:
                try:
                        Builder.build_int(self.float_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass



        # MARK: build_float()
        def test_build_float_no_args(self) -> None:
                try:
                        Builder.build_float(self.no_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass
        
        def test_build_float_in_range(self) -> None:
                try:
                        self.assertAlmostEqual(0., Builder.build_float(self.float_args, 0))
                        self.assertAlmostEqual(3.14159, Builder.build_float(self.float_args, 3))
                except BuilderError:
                        self.fail()

        def test_build_float_out_of_range(self) -> None:
                try:
                        Builder.build_float(self.float_args, 4)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass

        def test_build_float_string_value(self) -> None:
                try:
                        Builder.build_float(self.string_args, 0)
                        self.fail()
                except BuilderError:
                        # Expected Result
                        pass

        def test_build_float_int_value(self) -> None:
                try:
                        self.assertAlmostEqual(1., Builder.build_float(self.int_args, 0))
                except BuilderError:
                        self.fail()
                        pass



        # search()
        def test_search_no_match(self) -> None:
                self.assertEqual(None, Builder.search(DataNode("a", None, ["q", "r", "s"], []), self.no_args))


        def test_search_exact_match(self) -> None:
                self.assertEqual(self.string_args, Builder.search(self.string_args, self.no_args))

        def test_search_inexact_match(self) -> None:
                self.assertEqual(self.int_args,
                        Builder.search(DataNode("intargs", None, ["1", "0", "not even an int"], []), self.no_args))


        def test_search_close_failure(self) -> None:
                self.assertEqual(None,
                        Builder.search(DataNode("intargs", None, [], []), self.no_args))
                self.assertEqual(None,
                        Builder.search(DataNode("intargs", None, ["."], []), self.no_args))
                self.assertEqual(None,
                        Builder.search(DataNode("not int args", None, ["1"], []), self.no_args))

        def test_search_second_level_match(self) -> None:
                self.assertEqual(None, Builder.search(self.float_args, self.no_args))

Tests for the various methods of Builder

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Ancestors

  • unittest.case.TestCase

Class variables

var float_args : weftspace.data_node.DataNode

The type of the None singleton.

var int_args : weftspace.data_node.DataNode

The type of the None singleton.

var no_args : weftspace.data_node.DataNode

The type of the None singleton.

var string_args : weftspace.data_node.DataNode

The type of the None singleton.

Methods

def setUp(self) ‑> None
Expand source code
def setUp(self) -> None:
        print("PRINT ME")
        self.float_args = DataNode("doubargs", None, ["0.", "-0.8", "15.36", "3.14159"], [])
        self.string_args = DataNode("strargs", None, ["foo", "bar"], [])
        self.int_args = DataNode("intargs", None, ["1", "2", "3", "-1"], [self.float_args])
        self.no_args = DataNode("argless", None, [], [self.string_args, self.int_args])
        return super().setUp()

Hook method for setting up the test fixture before exercising it.

def test_build_float_in_range(self) ‑> None
Expand source code
def test_build_float_in_range(self) -> None:
        try:
                self.assertAlmostEqual(0., Builder.build_float(self.float_args, 0))
                self.assertAlmostEqual(3.14159, Builder.build_float(self.float_args, 3))
        except BuilderError:
                self.fail()
def test_build_float_int_value(self) ‑> None
Expand source code
def test_build_float_int_value(self) -> None:
        try:
                self.assertAlmostEqual(1., Builder.build_float(self.int_args, 0))
        except BuilderError:
                self.fail()
                pass
def test_build_float_no_args(self) ‑> None
Expand source code
def test_build_float_no_args(self) -> None:
        try:
                Builder.build_float(self.no_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_float_out_of_range(self) ‑> None
Expand source code
def test_build_float_out_of_range(self) -> None:
        try:
                Builder.build_float(self.float_args, 4)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_float_string_value(self) ‑> None
Expand source code
def test_build_float_string_value(self) -> None:
        try:
                Builder.build_float(self.string_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_int_float_value(self) ‑> None
Expand source code
def test_build_int_float_value(self) -> None:
        try:
                Builder.build_int(self.float_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_int_in_range(self) ‑> None
Expand source code
def test_build_int_in_range(self) -> None:
        try:
                self.assertEqual(3, Builder.build_int(self.int_args, 2))
                self.assertEqual(-1, Builder.build_int(self.int_args, 3))
        except BuilderError:
                self.fail()
def test_build_int_no_args(self) ‑> None
Expand source code
def test_build_int_no_args(self) -> None:
        try:
                Builder.build_int(self.no_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_int_out_of_range(self) ‑> None
Expand source code
def test_build_int_out_of_range(self) -> None:
        try:
                Builder.build_int(self.int_args, 4)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_int_string_value(self) ‑> None
Expand source code
def test_build_int_string_value(self) -> None:
        try:
                Builder.build_int(self.string_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_string_in_range(self) ‑> None
Expand source code
def test_build_string_in_range(self) -> None:
        try:
                self.assertEqual("foo", Builder.build_string(self.string_args, 0))
                self.assertEqual("3.14159", Builder.build_string(self.float_args, 3))
        except BuilderError:
                self.fail()
def test_build_string_no_args(self) ‑> None
Expand source code
def test_build_string_no_args(self) -> None:
        try:
                Builder.build_string(self.no_args, 0)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_build_string_out_of_range(self) ‑> None
Expand source code
def test_build_string_out_of_range(self) -> None:
        try:
                Builder.build_string(self.string_args, 2)
                self.fail()
        except BuilderError:
                # Expected Result
                pass
def test_pass(self)
Expand source code
def test_pass(self):
        return
def test_search_close_failure(self) ‑> None
Expand source code
def test_search_close_failure(self) -> None:
        self.assertEqual(None,
                Builder.search(DataNode("intargs", None, [], []), self.no_args))
        self.assertEqual(None,
                Builder.search(DataNode("intargs", None, ["."], []), self.no_args))
        self.assertEqual(None,
                Builder.search(DataNode("not int args", None, ["1"], []), self.no_args))
def test_search_exact_match(self) ‑> None
Expand source code
def test_search_exact_match(self) -> None:
        self.assertEqual(self.string_args, Builder.search(self.string_args, self.no_args))
def test_search_inexact_match(self) ‑> None
Expand source code
def test_search_inexact_match(self) -> None:
        self.assertEqual(self.int_args,
                Builder.search(DataNode("intargs", None, ["1", "0", "not even an int"], []), self.no_args))
def test_search_no_match(self) ‑> None
Expand source code
def test_search_no_match(self) -> None:
        self.assertEqual(None, Builder.search(DataNode("a", None, ["q", "r", "s"], []), self.no_args))
def test_search_second_level_match(self) ‑> None
Expand source code
def test_search_second_level_match(self) -> None:
        self.assertEqual(None, Builder.search(self.float_args, self.no_args))