Пример #1
0
    def test_wrong_length(self):
        X = grammar.TypeExpression('X')
        composite_type = grammar.CompositeType('C', ['foo', 'bar'])
        with self.assertRaisesRegex(TypeError, '1'):
            composite_type[X]

        composite_type = grammar.CompositeType('C', ['foo'])
        with self.assertRaisesRegex(TypeError, '2'):
            composite_type[X, X]
Пример #2
0
 def test_immutable(self):
     # If this test fails, then the hiearchy has been rearranged and the
     # properties tested for `_TypeBase` should be tested for
     # this class.
     #     - Your Friendly Dead Man's Switch
     self.assertIsInstance(grammar.CompositeType('Example', ('foo', )),
                           grammar._TypeBase)
Пример #3
0
    def test_apply_fields(self):
        X = grammar.TypeExpression('X')
        Example = grammar.CompositeType('Example', ('foo', ))

        result = Example._apply_fields_((X, ))

        self.assertEqual(result.fields, (X, ))
        self.assertEqual(result.name, 'Example')
        self.assertIsInstance(result, grammar.TypeExpression)
Пример #4
0
 def test_and(self):
     with self.assertRaisesRegex(TypeError, 'intersect'):
         grammar.CompositeType('Example', ('foo', )) & None
Пример #5
0
 def test_or(self):
     with self.assertRaisesRegex(TypeError, 'union'):
         grammar.CompositeType('Example', ('foo', )) | None
Пример #6
0
 def test_mod(self):
     with self.assertRaisesRegex(TypeError, 'predicate'):
         grammar.CompositeType('Example', ('foo', )) % None
Пример #7
0
 def test_field_sanity(self):
     with self.assertRaisesRegex(ValueError, 'empty'):
         grammar.CompositeType('Example', ())
Пример #8
0
 def test_validate_intersection_w_composite_type(self):
     X = grammar.TypeExpression('X')
     with self.assertRaisesRegex(TypeError, 'incomplete'):
         X._validate_intersection_(
             grammar.CompositeType('A', field_names=('X', )))
Пример #9
0
 def test_nested_expression(self):
     X = grammar.TypeExpression('X')
     C = grammar.CompositeType('C', ['foo', 'bar'])
     self.assertEqual(repr(C[X, C[C[X, X], X]]), 'C[X, C[C[X, X], X]]')
Пример #10
0
    def test_iter_symbols(self):
        Example = grammar.CompositeType('Example', ('foo', ))

        self.assertEqual(list(Example.iter_symbols()), ['Example'])
Пример #11
0
 def test_validate_field_w_nonsense(self):
     Example = grammar.CompositeType('Example', ('foo', ))
     with self.assertRaisesRegex(TypeError, 'Ellipsis'):
         Example._validate_field_('foo', Ellipsis)
Пример #12
0
 def test_validate_field_w_comptype(self):
     Example = grammar.CompositeType('Example', ('foo', ))
     with self.assertRaisesRegex(TypeError, 'Incomplete'):
         Example._validate_field_('foo', Example)
Пример #13
0
 def test_validate_field_w_typeexp(self):
     Example = grammar.CompositeType('Example', ('foo', ))
     # Check that no error is raised:
     Example._validate_field_('foo', grammar.TypeExpression('X'))
Пример #14
0
    def test_repr(self):
        self.assertEqual(repr(grammar.CompositeType('Example', ('foo', ))),
                         'Example[{foo}]')

        self.assertEqual(repr(grammar.CompositeType('Example', ('f', 'b'))),
                         'Example[{f}, {b}]')