#50451 Issue: 48851 - investigate and port TET matching rules filter tests(more testcase to match)
Closed 3 years ago by spichugi. Opened 4 years ago by aborah.
aborah/389-ds-base addmorematch  into  master

@@ -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: ???

I think it will be hard to modify in the future because it is really hard to follow.
It will be better if you'll define a list of dicts and iterate through them in the parametrized test function.
Something like this:

[{'cn': value1, 'attr': value1, 'positive': value1, 'negative': value1}, {'cn': value2, 'attr': value2, 'positive': value2, 'negative': value2}, ...]

1 new commit added

  • Issue: 48851 - Add more testcase to match test suit.
4 years ago

@spichugi changes are done as per your suggestion

Small nitpick but I think it can be a good improvement.
Could you please construct cn out of attr name? It follows the same pattern so it's kind of redundant now.

1 new commit added

  • Fixing Simon's comments 2
4 years ago

@spichugi changes are done as per your suggestion

Could you please also modify test_valid_invalid_attributes the same way?
Also test_valid_invalid_modes and test_valid_invalid_attributes have the same docstring.

1 new commit added

  • Fixing Simon's comments 3
4 years ago

@spichugi changes are done as per your suggestion

rebased onto 602ceaceac2a4f956665ea30dd64bff05718c5db

4 years ago

rebased onto a1beedfb8b80c511fff8d103bdb0a296349bf48a

4 years ago

Please, fix the grammar in Commit message.

Add more test cases to the match test suite

rebased onto 0e67cfaabdc60eddced9f3206e3e1e8b3d89f624

4 years ago

rebased onto 1924c12

4 years ago

Pull-Request has been merged by spichugi

4 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/3509

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

3 years ago
Metadata