Exemplo n.º 1
0
    def it_can_construct_from_seq_of_head_body_pairs(self, from_seq_fixture):
        head_body_pairs = from_seq_fixture

        productions = Productions.from_seq(*head_body_pairs)

        ps = productions._productions
        for idx, (head, body) in enumerate(head_body_pairs):
            production = ps[idx]
            assert type(production) is Production
            assert production.head is head
            assert production.body is body
Exemplo n.º 2
0
    def it_can_construct_from_seq_of_head_body_pairs(self, from_seq_fixture):
        head_body_pairs = from_seq_fixture

        productions = Productions.from_seq(*head_body_pairs)

        ps = productions._productions
        for idx, (head, body) in enumerate(head_body_pairs):
            production = ps[idx]
            assert type(production) is Production
            assert production.head is head
            assert production.body is body
Exemplo n.º 3
0
 def it_raises_on_attempt_to_create_a_new_attribute(self):
     productions = Productions(())
     with pytest.raises(AttributeError):
         productions.new_attr = '9'
Exemplo n.º 4
0
 def it_can_get_the_productions_for_a_head_symbol(self, getitem_fixture):
     production_seq, key, expected_productions = getitem_fixture
     productions = Productions(production_seq)
     assert list(productions[key]) == expected_productions
Exemplo n.º 5
0
 def it_raises_on_attempt_to_create_a_new_attribute(self):
     productions = Productions(())
     with pytest.raises(AttributeError):
         productions.new_attr = '9'