예제 #1
0
 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([]))
예제 #2
0
 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]))
예제 #3
0
    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}))