Exemplo n.º 1
0
 def test_item_substring_aa(self):
     text = r'*foo*bar*'
     filt = pureldap.LDAPFilter_substrings(
         type='cn',
         substrings=[pureldap.LDAPFilter_substrings_any('foo'),
                     pureldap.LDAPFilter_substrings_any('bar'),
                     ])
     self.assertEquals(ldapfilter.parseMaybeSubstring('cn', text), filt)
Exemplo n.º 2
0
 def test_item_substring_aa(self):
     text = r'(cn=*foo*bar*)'
     filt = pureldap.LDAPFilter_substrings(
         type='cn',
         substrings=[pureldap.LDAPFilter_substrings_any('foo'),
                     pureldap.LDAPFilter_substrings_any('bar'),
                     ])
     self.assertEquals(ldapfilter.parseFilter(text), filt)
     self.assertEquals(filt.asText(), text)
Exemplo n.º 3
0
 def test_substrings(self):
     text = '(o=univ*of*mich*)'
     filt = pureldap.LDAPFilter_substrings(
         type='o',
         substrings=[ pureldap.LDAPFilter_substrings_initial(value='univ'),
                      pureldap.LDAPFilter_substrings_any(value='of'),
                      pureldap.LDAPFilter_substrings_any(value='mich'),
                      ])
     self.assertEquals(ldapfilter.parseFilter(text), filt)
     self.assertEquals(filt.asText(), text)
Exemplo n.º 4
0
 def test_item_substring_iaaf(self):
     text = r'foo*bar*baz*quux'
     filt = pureldap.LDAPFilter_substrings(
         type='cn',
         substrings=[pureldap.LDAPFilter_substrings_initial('foo'),
                     pureldap.LDAPFilter_substrings_any('bar'),
                     pureldap.LDAPFilter_substrings_any('baz'),
                     pureldap.LDAPFilter_substrings_final('quux'),
                     ])
     self.assertEquals(ldapfilter.parseMaybeSubstring('cn', text), filt)
Exemplo n.º 5
0
 def test_escape_asterisk(self):
     text = r'(cn=*\2A*)'
     filt = pureldap.LDAPFilter_substrings(
         type='cn',
         substrings=[ pureldap.LDAPFilter_substrings_any(value='*'),
                      ])
     self.assertEquals(ldapfilter.parseFilter(text), filt)
     self.assertEquals(filt.asText(), text.lower())
Exemplo n.º 6
0
 def test_substrings_noMatch(self):
     o = inmemory.ReadOnlyInMemoryLDAPEntry(dn='cn=foo,dc=example,dc=com',
                                            attributes={
                                                'objectClass': ['a', 'b'],
                                                'aValue': ['a'],
                                                'bValue': ['b'],
                                            })
     result = o.match(
         pureldap.LDAPFilter_substrings(
             type='aValue',
             substrings=[
                 pureldap.LDAPFilter_substrings_initial('bad'),
                 pureldap.LDAPFilter_substrings_any('dog'),
                 pureldap.LDAPFilter_substrings_any('no'),
                 pureldap.LDAPFilter_substrings_final('bone'),
             ]))
     self.assertEquals(result, False)
Exemplo n.º 7
0
 def test_substrings_match6(self):
     o = inmemory.ReadOnlyInMemoryLDAPEntry(dn='cn=foo,dc=example,dc=com',
                                            attributes={
                                                'objectClass': ['a', 'b'],
                                                'aValue': ['aBCdE'],
                                                'bValue': ['b'],
                                            })
     result = o.match(
         pureldap.LDAPFilter_substrings(
             type='aValue',
             substrings=[
                 pureldap.LDAPFilter_substrings_initial('A'),
                 pureldap.LDAPFilter_substrings_any('b'),
                 pureldap.LDAPFilter_substrings_any('C'),
                 pureldap.LDAPFilter_substrings_any('D'),
                 pureldap.LDAPFilter_substrings_final('e'),
             ]))
     self.assertEquals(result, True)
Exemplo n.º 8
0
 def test_andornot(self):
     text = r'(&(!(|(cn=foo)(cn=bar)))(sn=a*b*c*d))'
     filt = pureldap.LDAPFilter_and([
         pureldap.LDAPFilter_not(
         pureldap.LDAPFilter_or([
         pureldap.LDAPFilter_equalityMatch(
         attributeDesc=pureldap.LDAPAttributeDescription(value='cn'),
         assertionValue=pureldap.LDAPAssertionValue(value='foo')),
         pureldap.LDAPFilter_equalityMatch(
         attributeDesc=pureldap.LDAPAttributeDescription(value='cn'),
         assertionValue=pureldap.LDAPAssertionValue(value='bar')),
         ])),
         pureldap.LDAPFilter_substrings(
         type='sn',
         substrings=[pureldap.LDAPFilter_substrings_initial('a'),
                     pureldap.LDAPFilter_substrings_any('b'),
                     pureldap.LDAPFilter_substrings_any('c'),
                     pureldap.LDAPFilter_substrings_final('d'),
                     ])])
     self.assertEquals(ldapfilter.parseFilter(text), filt)
     self.assertEquals(filt.asText(), text)
Exemplo n.º 9
0
def _p_simple(s, l, t):
    attr, filtertype, value = t
    return filtertype(attributeDesc=pureldap.LDAPAttributeDescription(attr),
                      assertionValue=pureldap.LDAPAssertionValue(value))


simple.setParseAction(_p_simple)
present = attr + "=*"
present.setParseAction(lambda s, l, t: pureldap.LDAPFilter_present(t[0]))
initial = copy.copy(value)
initial.setParseAction(
    lambda s, l, t: pureldap.LDAPFilter_substrings_initial(t[0]))
initial.setName('initial')
any_value = value + Suppress(Literal("*"))
any_value.setParseAction(
    lambda s, l, t: pureldap.LDAPFilter_substrings_any(t[0]))
any = Suppress(Literal("*")) + ZeroOrMore(any_value)
any.setName('any')
final = copy.copy(value)
final.setName('final')
final.setParseAction(
    lambda s, l, t: pureldap.LDAPFilter_substrings_final(t[0]))
substring = attr + Suppress(
    Literal("=")) + Group(Optional(initial) + any + Optional(final))
substring.setName('substring')


def _p_substring(s, l, t):
    attrtype, substrings = t
    return pureldap.LDAPFilter_substrings(type=attrtype, substrings=substrings)