def test_nonSequence(self): """ A non-sequence is parsed as ``None``. """ self.assertThat( many(identity)(None), Equals([])) self.assertThat( many(identity)(42), Equals([])) self.assertThat( many(identity)(b'hello'), Equals([]))
def test_sequence(self): """ A callable is mapped over each element of a sequence. """ self.assertThat( many(identity)([]), Equals([])) self.assertThat( many(identity)([1, 2]), Equals([1, 2])) self.assertThat( many(identity)((1, 2)), Equals([1, 2])) self.assertThat( many(Integer)([b'1', b'2']), Equals([1, 2]))
def test_parse(self): """ Parse a query string. """ query = { b'foo': [b'1', b'2'], b'bar': [], b'baz': [b'yes', b'1', b'False', b'huh'], b'quux': [b'hello', b'world']} self.assertThat( parse({b'foo': one(Integer), b'bar': many(Integer), b'baz': many(Boolean), b'quux': many(Text), b'notathing': many(Integer), b'alsonotathing': one(Text)}, query), Equals({b'foo': 1, b'bar': [], b'baz': [True, True, False, None], b'quux': [u'hello', u'world'], b'notathing': [], b'alsonotathing': None}))