| |
@@ -106,117 +106,184 @@
|
| |
"octetStringOrderingMatch"]
|
| |
|
| |
|
| |
- MATCHING_RULES = [('addentrybitStringMatch', 'attrbitStringMatch',
|
| |
- ["'0010'B", "'0011'B", "'0100'B", "'0101'B", "'0110'B"],
|
| |
- ["'0001'B", "'0001'B", "'0010'B", "'0010'B", "'0011'B",
|
| |
- "'0011'B", "'0100'B", "'0100'B", "'0101'B",
|
| |
- "'0101'B", "'0110'B", "'0110'B"]),
|
| |
- ('addentrycaseExactIA5Match', 'attrcaseExactIA5Match',
|
| |
- ['sPrain', 'spRain', 'sprAin', 'spraIn', 'sprain'],
|
| |
- ['Sprain', 'Sprain', 'Sprain', 'Sprain', 'SpRain',
|
| |
- 'SpRain', 'SprAin', 'SprAin', 'SpraIn', 'SpraIn',
|
| |
- 'Sprain', 'Sprain']),
|
| |
- ('addentrycaseExactMatch', 'attrcaseExactMatch',
|
| |
- ['ÇéliNé Ändrè', 'Çéliné ÄndrÈ', 'Çéliné Ändrè', 'çÉliné Ändrè'],
|
| |
- ['ÇélIné Ändrè', 'ÇélIné Ändrè', 'ÇéliNé Ändrè', 'ÇéliNé Ändrè',
|
| |
- 'Çéliné ÄndrÈ', 'Çéliné ÄndrÈ', 'Çéliné Ändrè', 'Çéliné Ändrè',
|
| |
- 'çÉliné Ändrè', 'çÉliné Ändrè']),
|
| |
- ('addentrygeneralizedTimeMatch', 'attrgeneralizedTimeMatch',
|
| |
- ['20100218171301Z', '20100218171302Z', '20100218171303Z',
|
| |
- '20100218171304Z', '20100218171305Z'],
|
| |
- ['20100218171300Z', '20100218171300Z', '20100218171301Z',
|
| |
- '20100218171301Z', '20100218171302Z', '20100218171302Z',
|
| |
- '20100218171303Z', '20100218171303Z', '20100218171304Z',
|
| |
- '20100218171304Z', '20100218171305Z', '20100218171305Z']),
|
| |
- ('addentrybooleanMatch', 'attrbooleanMatch',
|
| |
- ['FALSE'],
|
| |
- ['TRUE', 'TRUE', 'FALSE', 'FALSE']),
|
| |
- ('addentrycaseIgnoreIA5Match', 'attrcaseIgnoreIA5Match',
|
| |
- ['sprain2', 'sprain3', 'sprain4', 'sprain5', 'sprain6'],
|
| |
- ['sprain1', 'sprain1', 'sprain2', 'sprain2', 'sprain3',
|
| |
- 'sprain3', 'sprain4', 'sprain4', 'sprain5', 'sprain5',
|
| |
- 'sprain6', 'sprain6']),
|
| |
- ('addentrycaseIgnoreMatch', 'attrcaseIgnoreMatch',
|
| |
- ['ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4',
|
| |
- 'ÇélIné Ändrè5', 'ÇélIné Ändrè6'],
|
| |
- ['ÇélIné Ändrè1', 'ÇélIné Ändrè1', 'ÇélIné Ändrè2',
|
| |
- 'ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè3',
|
| |
- 'ÇélIné Ändrè4', 'ÇélIné Ändrè4', 'ÇélIné Ändrè5',
|
| |
- 'ÇélIné Ändrè5', 'ÇélIné Ändrè6', 'ÇélIné Ändrè6']),
|
| |
- ('addentrycaseIgnoreListMatch', 'attrcaseIgnoreListMatch',
|
| |
- ['foo2$bar', 'foo3$bar', 'foo4$bar', 'foo5$bar', 'foo6$bar'],
|
| |
- ['foo1$bar', 'foo1$bar', 'foo2$bar', 'foo2$bar', 'foo3$bar',
|
| |
- 'foo3$bar', 'foo4$bar', 'foo4$bar', 'foo5$bar', 'foo5$bar',
|
| |
- 'foo6$bar', 'foo6$bar']),
|
| |
- ('addentryobjectIdentifierMatch', 'attrobjectIdentifierMatch',
|
| |
- ['1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.6'],
|
| |
- ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.6', '1.3.6.1.4.1.1466.115.121.1.6']),
|
| |
- ('addentrydirectoryStringFirstComponentMatch',
|
| |
- 'attrdirectoryStringFirstComponentMatch',
|
| |
- ['ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4', 'ÇélIné Ändrè5',
|
| |
- 'ÇélIné Ändrè6'],
|
| |
- ['ÇélIné Ändrè1', 'ÇélIné Ändrè1', 'ÇélIné Ändrè2', 'ÇélIné Ändrè2',
|
| |
- 'ÇélIné Ändrè3', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4', 'ÇélIné Ändrè4',
|
| |
- 'ÇélIné Ändrè5', 'ÇélIné Ändrè5', 'ÇélIné Ändrè6', 'ÇélIné Ändrè6']),
|
| |
- ('addentryobjectIdentifierFirstComponentMatch',
|
| |
- 'attrobjectIdentifierFirstComponentMatch',
|
| |
- ['1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.6'],
|
| |
- ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
- '1.3.6.1.4.1.1466.115.121.1.6', '1.3.6.1.4.1.1466.115.121.1.6']),
|
| |
- ('addentrydistinguishedNameMatch', 'attrdistinguishedNameMatch',
|
| |
- ['cn=foo2,cn=bar', 'cn=foo3,cn=bar', 'cn=foo4,cn=bar',
|
| |
- 'cn=foo5,cn=bar', 'cn=foo6,cn=bar'],
|
| |
- ['cn=foo1,cn=bar', 'cn=foo1,cn=bar', 'cn=foo2,cn=bar',
|
| |
- 'cn=foo2,cn=bar', 'cn=foo3,cn=bar', 'cn=foo3,cn=bar',
|
| |
- 'cn=foo4,cn=bar', 'cn=foo4,cn=bar', 'cn=foo5,cn=bar',
|
| |
- 'cn=foo5,cn=bar', 'cn=foo6,cn=bar', 'cn=foo6,cn=bar']),
|
| |
- ('addentryintegerMatch', 'attrintegerMatch',
|
| |
- ['-1', '0', '1', '2', '3'],
|
| |
- ['-2', '-2', '-1', '-1', '0', '0', '1', '1', '2', '2', '3', '3']),
|
| |
- ('addentryintegerFirstComponentMatch', 'attrintegerFirstComponentMatch',
|
| |
- ['-1', '0', '1', '2', '3'],
|
| |
- ['-2', '-2', '-1', '-1', '0', '0', '1', '1', '2', '2', '3', '3']),
|
| |
- ('addentryuniqueMemberMatch', 'attruniqueMemberMatch',
|
| |
- ["cn=foo2,cn=bar#'0010'B", "cn=foo3,cn=bar#'0011'B",
|
| |
- "cn=foo4,cn=bar#'0100'B", "cn=foo5,cn=bar#'0101'B",
|
| |
- "cn=foo6,cn=bar#'0110'B"],
|
| |
- ["cn=foo1,cn=bar#'0001'B", "cn=foo1,cn=bar#'0001'B",
|
| |
- "cn=foo2,cn=bar#'0010'B", "cn=foo2,cn=bar#'0010'B",
|
| |
- "cn=foo3,cn=bar#'0011'B", "cn=foo3,cn=bar#'0011'B",
|
| |
- "cn=foo4,cn=bar#'0100'B", "cn=foo4,cn=bar#'0100'B",
|
| |
- "cn=foo5,cn=bar#'0101'B", "cn=foo5,cn=bar#'0101'B",
|
| |
- "cn=foo6,cn=bar#'0110'B", "cn=foo6,cn=bar#'0110'B"]),
|
| |
- ('addentrynumericStringMatch', 'attrnumericStringMatch',
|
| |
- ['00002', '00003', '00004', '00005', '00006'],
|
| |
- ['00001', '00001', '00002', '00002', '00003', '00003', '00004',
|
| |
- '00004', '00005', '00005', '00006', '00006']),
|
| |
- ('addentrytelephoneNumberMatch', 'attrtelephoneNumberMatch',
|
| |
- ['+1 408 555 5625', '+1 408 555 6201', '+1 408 555 8585',
|
| |
- '+1 408 555 9187', '+1 408 555 9423'],
|
| |
- ['+1 408 555 4798', '+1 408 555 4798', '+1 408 555 5625',
|
| |
- '+1 408 555 5625', '+1 408 555 6201', '+1 408 555 6201',
|
| |
- '+1 408 555 8585', '+1 408 555 8585', '+1 408 555 9187',
|
| |
- '+1 408 555 9187', '+1 408 555 9423', '+1 408 555 9423']),
|
| |
- ('addentryoctetStringMatch', 'attroctetStringMatch',
|
| |
- ['AAAAAAAAAAAAAAI=', 'AAAAAAAAAAAAAAM=', 'AAAAAAAAAAAAAAQ=',
|
| |
- 'AAAAAAAAAAAAAAU=', 'AAAAAAAAAAAAAAY='],
|
| |
- ['AAAAAAAAAAAAAAE=', 'AAAAAAAAAAAAAAE=', 'AAAAAAAAAAAAAAI=',
|
| |
- 'AAAAAAAAAAAAAAI=', 'AAAAAAAAAAAAAAM=', 'AAAAAAAAAAAAAAM=',
|
| |
- 'AAAAAAAAAAAAAAQ=', 'AAAAAAAAAAAAAAQ=', 'AAAAAAAAAAAAAAU=',
|
| |
- 'AAAAAAAAAAAAAAU=', 'AAAAAAAAAAAAAAY=', 'AAAAAAAAAAAAAAY='])]
|
| |
+ MATCHING_RULES = [
|
| |
+ {'attr': 'attrbitStringMatch',
|
| |
+ 'positive': ["'0010'B", "'0011'B", "'0100'B", "'0101'B", "'0110'B"],
|
| |
+ 'negative': ["'0001'B", "'0001'B", "'0010'B", "'0010'B", "'0011'B",
|
| |
+ "'0011'B", "'0100'B", "'0100'B", "'0101'B",
|
| |
+ "'0101'B", "'0110'B", "'0110'B"]},
|
| |
+ {'attr': 'attrcaseExactIA5Match',
|
| |
+ 'positive': ['sPrain', 'spRain', 'sprAin', 'spraIn', 'sprain'],
|
| |
+ 'negative': ['Sprain', 'Sprain', 'Sprain', 'Sprain', 'SpRain',
|
| |
+ 'SpRain', 'SprAin', 'SprAin', 'SpraIn', 'SpraIn',
|
| |
+ 'Sprain', 'Sprain']},
|
| |
+ {'attr': 'attrcaseExactMatch',
|
| |
+ 'positive': ['ÇéliNé Ändrè', 'Çéliné ÄndrÈ', 'Çéliné Ändrè', 'çÉliné Ändrè'],
|
| |
+ 'negative': ['ÇélIné Ändrè', 'ÇélIné Ändrè', 'ÇéliNé Ändrè', 'ÇéliNé Ändrè',
|
| |
+ 'Çéliné ÄndrÈ', 'Çéliné ÄndrÈ', 'Çéliné Ändrè', 'Çéliné Ändrè',
|
| |
+ 'çÉliné Ändrè', 'çÉliné Ändrè']},
|
| |
+ {'attr': 'attrgeneralizedTimeMatch',
|
| |
+ 'positive': ['20100218171301Z', '20100218171302Z', '20100218171303Z',
|
| |
+ '20100218171304Z', '20100218171305Z'],
|
| |
+ 'negative': ['20100218171300Z', '20100218171300Z', '20100218171301Z',
|
| |
+ '20100218171301Z', '20100218171302Z', '20100218171302Z',
|
| |
+ '20100218171303Z', '20100218171303Z', '20100218171304Z',
|
| |
+ '20100218171304Z', '20100218171305Z', '20100218171305Z']},
|
| |
+ {'attr': 'attrbooleanMatch',
|
| |
+ 'positive': ['FALSE'],
|
| |
+ 'negative': ['TRUE', 'TRUE', 'FALSE', 'FALSE']},
|
| |
+ {'attr': 'attrcaseIgnoreIA5Match',
|
| |
+ 'positive': ['sprain2', 'sprain3', 'sprain4', 'sprain5', 'sprain6'],
|
| |
+ 'negative': ['sprain1', 'sprain1', 'sprain2', 'sprain2', 'sprain3',
|
| |
+ 'sprain3', 'sprain4', 'sprain4', 'sprain5', 'sprain5',
|
| |
+ 'sprain6', 'sprain6']},
|
| |
+ {'attr': 'attrcaseIgnoreMatch',
|
| |
+ 'positive': ['ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4',
|
| |
+ 'ÇélIné Ändrè5', 'ÇélIné Ändrè6'],
|
| |
+ 'negative': ['ÇélIné Ändrè1', 'ÇélIné Ändrè1', 'ÇélIné Ändrè2',
|
| |
+ 'ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè3',
|
| |
+ 'ÇélIné Ändrè4', 'ÇélIné Ändrè4', 'ÇélIné Ändrè5',
|
| |
+ 'ÇélIné Ändrè5', 'ÇélIné Ändrè6', 'ÇélIné Ändrè6']},
|
| |
+ {'attr': 'attrcaseIgnoreListMatch',
|
| |
+ 'positive': ['foo2$bar', 'foo3$bar', 'foo4$bar', 'foo5$bar', 'foo6$bar'],
|
| |
+ 'negative': ['foo1$bar', 'foo1$bar', 'foo2$bar', 'foo2$bar', 'foo3$bar',
|
| |
+ 'foo3$bar', 'foo4$bar', 'foo4$bar', 'foo5$bar', 'foo5$bar',
|
| |
+ 'foo6$bar', 'foo6$bar']},
|
| |
+ {'attr': 'attrobjectIdentifierMatch',
|
| |
+ 'positive': ['1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.6'],
|
| |
+ 'negative': ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.6', '1.3.6.1.4.1.1466.115.121.1.6']},
|
| |
+ {'attr': 'attrdirectoryStringFirstComponentMatch',
|
| |
+ 'positive': ['ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4', 'ÇélIné Ändrè5',
|
| |
+ 'ÇélIné Ändrè6'],
|
| |
+ 'negative': ['ÇélIné Ändrè1', 'ÇélIné Ändrè1', 'ÇélIné Ändrè2', 'ÇélIné Ändrè2',
|
| |
+ 'ÇélIné Ändrè3', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4', 'ÇélIné Ändrè4',
|
| |
+ 'ÇélIné Ändrè5', 'ÇélIné Ändrè5', 'ÇélIné Ändrè6', 'ÇélIné Ändrè6']},
|
| |
+ {'attr': 'attrobjectIdentifierFirstComponentMatch',
|
| |
+ 'positive': ['1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.6'],
|
| |
+ 'negative': ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.24', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.26',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.40', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.41',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.6', '1.3.6.1.4.1.1466.115.121.1.6']},
|
| |
+ {'attr': 'attrdistinguishedNameMatch',
|
| |
+ 'positive': ['cn=foo2,cn=bar', 'cn=foo3,cn=bar', 'cn=foo4,cn=bar',
|
| |
+ 'cn=foo5,cn=bar', 'cn=foo6,cn=bar'],
|
| |
+ 'negative': ['cn=foo1,cn=bar', 'cn=foo1,cn=bar', 'cn=foo2,cn=bar',
|
| |
+ 'cn=foo2,cn=bar', 'cn=foo3,cn=bar', 'cn=foo3,cn=bar',
|
| |
+ 'cn=foo4,cn=bar', 'cn=foo4,cn=bar', 'cn=foo5,cn=bar',
|
| |
+ 'cn=foo5,cn=bar', 'cn=foo6,cn=bar', 'cn=foo6,cn=bar']},
|
| |
+ {'attr': 'attrintegerMatch',
|
| |
+ 'positive': ['-1', '0', '1', '2', '3'],
|
| |
+ 'negative': ['-2', '-2', '-1', '-1', '0', '0', '1', '1', '2', '2', '3', '3']},
|
| |
+ {'attr': 'attrintegerFirstComponentMatch',
|
| |
+ 'positive': ['-1', '0', '1', '2', '3'],
|
| |
+ 'negative': ['-2', '-2', '-1', '-1', '0', '0', '1', '1', '2', '2', '3', '3']},
|
| |
+ {'attr': 'attruniqueMemberMatch',
|
| |
+ 'positive': ["cn=foo2,cn=bar#'0010'B", "cn=foo3,cn=bar#'0011'B",
|
| |
+ "cn=foo4,cn=bar#'0100'B", "cn=foo5,cn=bar#'0101'B",
|
| |
+ "cn=foo6,cn=bar#'0110'B"],
|
| |
+ 'negative': ["cn=foo1,cn=bar#'0001'B", "cn=foo1,cn=bar#'0001'B",
|
| |
+ "cn=foo2,cn=bar#'0010'B", "cn=foo2,cn=bar#'0010'B",
|
| |
+ "cn=foo3,cn=bar#'0011'B", "cn=foo3,cn=bar#'0011'B",
|
| |
+ "cn=foo4,cn=bar#'0100'B", "cn=foo4,cn=bar#'0100'B",
|
| |
+ "cn=foo5,cn=bar#'0101'B", "cn=foo5,cn=bar#'0101'B",
|
| |
+ "cn=foo6,cn=bar#'0110'B", "cn=foo6,cn=bar#'0110'B"]},
|
| |
+ {'attr': 'attrnumericStringMatch',
|
| |
+ 'positive': ['00002', '00003', '00004', '00005', '00006'],
|
| |
+ 'negative': ['00001', '00001', '00002', '00002', '00003', '00003', '00004',
|
| |
+ '00004', '00005', '00005', '00006', '00006']},
|
| |
+ {'attr': 'attrtelephoneNumberMatch',
|
| |
+ 'positive': ['+1 408 555 5625', '+1 408 555 6201', '+1 408 555 8585',
|
| |
+ '+1 408 555 9187', '+1 408 555 9423'],
|
| |
+ 'negative': ['+1 408 555 4798', '+1 408 555 4798', '+1 408 555 5625',
|
| |
+ '+1 408 555 5625', '+1 408 555 6201', '+1 408 555 6201',
|
| |
+ '+1 408 555 8585', '+1 408 555 8585', '+1 408 555 9187',
|
| |
+ '+1 408 555 9187', '+1 408 555 9423', '+1 408 555 9423']},
|
| |
+ {'attr': 'attroctetStringMatch',
|
| |
+ 'positive': ['AAAAAAAAAAAAAAI=', 'AAAAAAAAAAAAAAM=', 'AAAAAAAAAAAAAAQ=',
|
| |
+ 'AAAAAAAAAAAAAAU=', 'AAAAAAAAAAAAAAY='],
|
| |
+ 'negative': ['AAAAAAAAAAAAAAE=', 'AAAAAAAAAAAAAAE=', 'AAAAAAAAAAAAAAI=',
|
| |
+ 'AAAAAAAAAAAAAAI=', 'AAAAAAAAAAAAAAM=', 'AAAAAAAAAAAAAAM=',
|
| |
+ 'AAAAAAAAAAAAAAQ=', 'AAAAAAAAAAAAAAQ=', 'AAAAAAAAAAAAAAU=',
|
| |
+ 'AAAAAAAAAAAAAAU=', 'AAAAAAAAAAAAAAY=', 'AAAAAAAAAAAAAAY=']}]
|
| |
+
|
| |
+
|
| |
+ MATCHING_MODES = [
|
| |
+ {'attr': 'attrbitStringMatch',
|
| |
+ 'positive': ["'0001'B"],
|
| |
+ 'negative': ["'0001'B", "'0010'B", "'0011'B", "'0100'B", "'0101'B", "'0110'B"]},
|
| |
+ {'attr': 'attrcaseExactIA5Match',
|
| |
+ 'positive': 'Sprain',
|
| |
+ 'negative': ['Sprain', 'sPrain', 'spRain', 'sprAin', 'spraIn', 'sprain']},
|
| |
+ {'attr': 'attrcaseExactMatch',
|
| |
+ 'positive': 'ÇélIné Ändrè',
|
| |
+ 'negative': ['ÇélIné Ändrè', 'ÇéliNé Ändrè', 'Çéliné ÄndrÈ', 'Çéliné Ändrè', 'çÉliné Ändrè']},
|
| |
+ {'attr': 'attrgeneralizedTimeMatch',
|
| |
+ 'positive': '20100218171300Z',
|
| |
+ 'negative': ['20100218171300Z', '20100218171301Z', '20100218171302Z',
|
| |
+ '20100218171303Z', '20100218171304Z', '20100218171305Z']},
|
| |
+ {'attr': 'attrbooleanMatch',
|
| |
+ 'positive': 'TRUE',
|
| |
+ 'negative': ['TRUE', 'FALSE']},
|
| |
+ {'attr': 'attrcaseIgnoreIA5Match',
|
| |
+ 'positive': 'sprain1',
|
| |
+ 'negative': ['sprain1', 'sprain2', 'sprain3', 'sprain4', 'sprain5', 'sprain6']},
|
| |
+ {'attr': 'attrcaseIgnoreMatch',
|
| |
+ 'positive': 'ÇélIné Ändrè1',
|
| |
+ 'negative': ['ÇélIné Ändrè1', 'ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4',
|
| |
+ 'ÇélIné Ändrè5', 'ÇélIné Ändrè6']},
|
| |
+ {'attr': 'attrcaseIgnoreListMatch',
|
| |
+ 'positive': 'foo1$bar',
|
| |
+ 'negative': ['foo1$bar', 'foo2$bar', 'foo3$bar', 'foo4$bar', 'foo5$bar', 'foo6$bar']},
|
| |
+ {'attr': 'attrobjectIdentifierMatch',
|
| |
+ 'positive': '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
+ 'negative': ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.6']},
|
| |
+ {'attr': 'attrdirectoryStringFirstComponentMatch',
|
| |
+ 'positive': 'ÇélIné Ändrè1',
|
| |
+ 'negative': ['ÇélIné Ändrè1', 'ÇélIné Ändrè2', 'ÇélIné Ändrè3', 'ÇélIné Ändrè4',
|
| |
+ 'ÇélIné Ändrè5', 'ÇélIné Ändrè6']},
|
| |
+ {'attr': 'attrobjectIdentifierFirstComponentMatch',
|
| |
+ 'positive': '1.3.6.1.4.1.1466.115.121.1.15',
|
| |
+ 'negative': ['1.3.6.1.4.1.1466.115.121.1.15', '1.3.6.1.4.1.1466.115.121.1.24',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.26', '1.3.6.1.4.1.1466.115.121.1.40',
|
| |
+ '1.3.6.1.4.1.1466.115.121.1.41', '1.3.6.1.4.1.1466.115.121.1.6']},
|
| |
+ {'attr': 'attrdistinguishedNameMatch',
|
| |
+ 'positive': 'cn=foo1,cn=bar',
|
| |
+ 'negative': ['cn=foo1,cn=bar', 'cn=foo2,cn=bar', 'cn=foo3,cn=bar', 'cn=foo4,cn=bar',
|
| |
+ 'cn=foo5,cn=bar', 'cn=foo6,cn=bar']},
|
| |
+ {'attr': 'attrintegerMatch',
|
| |
+ 'positive': '-2',
|
| |
+ 'negative': ['-2', '-1', '0', '1', '2', '3']},
|
| |
+ {'attr': 'attrintegerFirstComponentMatch',
|
| |
+ 'positive': '-2',
|
| |
+ 'negative': ['-2', '-1', '0', '1', '2', '3']},
|
| |
+ {'attr': 'attruniqueMemberMatch',
|
| |
+ 'positive': "cn=foo1,cn=bar#'0001'B",
|
| |
+ 'negative': ["cn=foo1,cn=bar#'0001'B", "cn=foo2,cn=bar#'0010'B", "cn=foo3,cn=bar#'0011'B",
|
| |
+ "cn=foo4,cn=bar#'0100'B", "cn=foo5,cn=bar#'0101'B", "cn=foo6,cn=bar#'0110'B"]},
|
| |
+ {'attr': 'attrnumericStringMatch',
|
| |
+ 'positive': '00001',
|
| |
+ 'negative': ['00001', '00002', '00003', '00004', '00005', '00006']},
|
| |
+ {'attr': 'attrtelephoneNumberMatch',
|
| |
+ 'positive': '+1 408 555 4798',
|
| |
+ 'negative': ['+1 408 555 4798', '+1 408 555 5625', '+1 408 555 6201', '+1 408 555 8585',
|
| |
+ '+1 408 555 9187', '+1 408 555 9423']},
|
| |
+ {'attr': 'attroctetStringMatch',
|
| |
+ 'positive': 'AAAAAAAAAAAAAAE=',
|
| |
+ 'negative': ['AAAAAAAAAAAAAAE=', 'AAAAAAAAAAAAAAI=', 'AAAAAAAAAAAAAAM=', 'AAAAAAAAAAAAAAQ=',
|
| |
+ 'AAAAAAAAAAAAAAU=', 'AAAAAAAAAAAAAAY=']}]
|
| |
|
| |
|
| |
def test_matching_rules(topology_st):
|
| |
@@ -251,8 +318,8 @@
|
| |
Schema(topology_st.standalone).add('attributetypes', attribute)
|
| |
|
| |
|
| |
- @pytest.mark.parametrize("cn_cn, attr, positive, negative", MATCHING_RULES)
|
| |
- def test_valid_invalid_attributes(topology_st, cn_cn, attr, positive, negative):
|
| |
+ @pytest.mark.parametrize("rule", MATCHING_RULES)
|
| |
+ def test_valid_invalid_attributes(topology_st, rule):
|
| |
"""Test valid and invalid values of attributes
|
| |
:id: 7ec19eca-8cfc-11e9-a0df-8c16451d917b
|
| |
:setup: Standalone
|
| |
@@ -267,13 +334,37 @@
|
| |
3. Fail
|
| |
"""
|
| |
cos = CosTemplates(topology_st.standalone, DEFAULT_SUFFIX)
|
| |
- cos.create(properties={'cn': cn_cn,
|
| |
- attr: positive})
|
| |
+ cos.create(properties={'cn': 'addentry'+rule['attr'].split('attr')[1],
|
| |
+ rule['attr']: rule['positive']})
|
| |
for entry in cos.list():
|
| |
entry.delete()
|
| |
with pytest.raises(ldap.TYPE_OR_VALUE_EXISTS):
|
| |
- cos.create(properties={'cn': cn_cn,
|
| |
- attr: negative})
|
| |
+ cos.create(properties={'cn': 'addentry'+rule['attr'].split('attr')[1],
|
| |
+ rule['attr']: rule['negative']})
|
| |
+
|
| |
+
|
| |
+ @pytest.mark.parametrize("mode", MATCHING_MODES)
|
| |
+ def test_valid_invalid_modes(topology_st, mode):
|
| |
+ """Test valid and invalid values of attributes modes
|
| |
+ :id: 7ec19eca-8cfc-11e9-a0df-8c16451d917b
|
| |
+ :setup: Standalone
|
| |
+ :steps:
|
| |
+ 1. Create entry with an attribute that uses matching mode
|
| |
+ 2. Add an attribute that uses that matching mode providing duplicate
|
| |
+ values that are duplicates according to the equality matching.
|
| |
+ 3. Delete existing entry
|
| |
+ :expected results:
|
| |
+ 1. Pass
|
| |
+ 2. Fail
|
| |
+ 3. Pass
|
| |
+ """
|
| |
+ cos = CosTemplates(topology_st.standalone, DEFAULT_SUFFIX)
|
| |
+ cos.create(properties={'cn': 'addentry'+mode['attr'].split('attr')[1],
|
| |
+ mode['attr']: mode['positive']})
|
| |
+ with pytest.raises(ldap.TYPE_OR_VALUE_EXISTS):
|
| |
+ cos.list()[0].add(mode['attr'], mode['negative'])
|
| |
+ for entry in cos.list():
|
| |
+ entry.delete()
|
| |
|
| |
|
| |
if __name__ == '__main__':
|
| |
Bug Description: Investigate and port TET matching rules filter tests(more testcase to match)
Relates: https://pagure.io/389-ds-base/issue/48851
Author: aborah
Reviewed by: ???