Esempio n. 1
0
def test_joined_string():
    el = JoinedString(u'abc')
    assert el.value == u'abc'
    assert [child.value for child in el] == [u'abc']

    el = JoinedString(u'abc,def')
    assert el.value == u'abc,def'
    assert [child.value for child in el] == [u'abc', u'def']

    el = JoinedString([u'abc', u'def'])
    assert el.value == u'abc,def'
    assert [child.value for child in el] == [u'abc', u'def']

    el = JoinedString(u' abc,,ghi ')
    assert el.value == u'abc,ghi'
    assert [child.value for child in el] == [u'abc', u'ghi']

    el = JoinedString(u'abc,,ghi', prune_empty=False)
    assert el.value == u'abc,,ghi'
    assert [child.value for child in el] == [u'abc', u'', u'ghi']

    # The child (String) strips by default
    el = JoinedString(u' abc ,, ghi ', strip=False)
    assert el.value == u'abc,ghi'
    assert [child.value for child in el] == [u'abc', u'ghi']

    # Try with a non-stripping String
    el = JoinedString(u' abc ,, ghi ',
                      strip=False,
                      member_schema=String.using(strip=False))
    assert el.value == u' abc , ghi '
    assert [child.value for child in el] == [u' abc ', u' ghi ']
Esempio n. 2
0
def test_joined_string_regex():
    schema = JoinedString.using(separator=u', ',
                                separator_regex=re.compile('X*,X*'))
    el = schema(u'abc')
    assert el.value == u'abc'
    assert [child.value for child in el] == [u'abc']

    el = schema(u'abcX,Xdef')
    assert el.value == u'abc, def'
    assert [child.value for child in el] == [u'abc', u'def']
Esempio n. 3
0
def test_joined_string_regex():
    schema = JoinedString.using(separator=u', ',
                                separator_regex=re.compile('X*,X*'))
    el = schema(u'abc')
    assert el.value == u'abc'
    assert [child.value for child in el] == [u'abc']

    el = schema(u'abcX,Xdef')
    assert el.value == u'abc, def'
    assert [child.value for child in el] == [u'abc', u'def']
Esempio n. 4
0
def test_joined_string_flat():
    schema = JoinedString.named(u'js').of(Integer)

    for set_value, flat_value in [([1], (u'js', u'1')), (u'1', (u'js', u'1')),
                                  ([1, 2, 3], (u'js', u'1,2,3')),
                                  (u'1,2,3', (u'js', u'1,2,3'))]:
        from_set = schema(set_value)
        assert from_set.flatten() == [flat_value]
        from_flat = schema.from_flat([flat_value])
        assert len(from_flat) == len(from_set)
        assert from_flat.flatten() == [flat_value]
        assert from_flat.value == from_set.value
Esempio n. 5
0
def test_joined_non_string():
    schema = JoinedString.using(member_schema=Integer)
    el = schema(u'1')
    assert el.value == u'1'
    assert [child.value for child in el] == [1]

    el = schema(u'1, 2, 3')
    assert el.value == u'1,2,3'
    assert [child.value for child in el] == [1, 2, 3]

    el = schema([1, 2, 3])
    assert el.value == u'1,2,3'
    assert [child.value for child in el] == [1, 2, 3]
Esempio n. 6
0
def test_joined_non_string():
    schema = JoinedString.using(member_schema=Integer)
    el = schema(u'1')
    assert el.value == u'1'
    assert [child.value for child in el] == [1]

    el = schema(u'1, 2, 3')
    assert el.value == u'1,2,3'
    assert [child.value for child in el] == [1, 2, 3]

    el = schema([1, 2, 3])
    assert el.value == u'1,2,3'
    assert [child.value for child in el] == [1, 2, 3]
Esempio n. 7
0
def test_joined_string_flat():
    schema = JoinedString.named('js').of(Integer)

    for set_value, flat_value in [
        ([1], (u'js', u'1')),
        (u'1', (u'js', u'1')),
        ([1, 2, 3], (u'js', u'1,2,3')),
        (u'1,2,3', (u'js', u'1,2,3'))]:
        from_set = schema(set_value)
        assert from_set.flatten() == [flat_value]
        from_flat = schema.from_flat([flat_value])
        assert len(from_flat) == len(from_set)
        assert from_flat.flatten() == [flat_value]
        assert from_flat.value == from_set.value
GuardianContentSearch = Dict.of(
    String.named('q').using(label='Search'
               ).validated_by(Converted()),
    String.named('tag').using(label='Tag filter', optional=True
               ).validated_by(Converted()),
    String.named('section').using(label='Section filter', optional=True
               ).validated_by(Converted()),
    DateYYYYMMDD.named('from-date').using(label='From Date filter', optional=True
               ).validated_by(Converted()),
    DateYYYYMMDD.named('to-date').using(label='To Date filter', optional=True
               ).validated_by(Converted()),
    Enum.named('order-by').valued(['newest', 'oldest', 'relevance']
               ).using(default='newest', optional=True),
    Integer.named('page').using(label='Page Index', default=1
               ).validated_by(Converted(), ValueGreaterThan(0)),
    Integer.named('page-size').using(label='Page Size', default=10
               ).validated_by(Converted(), ValueGreaterThan(0)),
    Enum.named('format').valued(['json', 'xml']).using(default='json'
               ).validated_by(Converted()),
    JoinedString.named('show-fields').using(label='Show fields', default=['all']
               ).validated_by(Converted()),
    JoinedString.named('show-tags').using(label='Show tabs', default=['all']
               ).validated_by(Converted()),
    JoinedString.named('show-refinements').using(label='Show refinements', default=['all']
               ).validated_by(Converted()),
    Integer.named('refinements-size').using(label='Refinement size', default=10
               ).validated_by(Converted(), ValueGreaterThan(0)),
)