#50725 Issue: 48851 - Investigate and port TET matching rules filter tests(last test cases for match index)
Closed 3 years ago by spichugi. Opened 4 years ago by aborah.
aborah/389-ds-base match_index_last  into  master

@@ -18,6 +18,7 @@ 

  from lib389.topologies import topology_st

  from lib389.cos import CosTemplates

  from lib389.index import Indexes

+ from lib389.schema import Schema

  

  import ldap

  
@@ -426,7 +427,6 @@ 

  @pytest.mark.parametrize("index", LIST_ATTR_INDEX)

  def test_valid_invalid_attributes(topology_st, _create_index_entry, index):

      """Test valid and invalid values of attributes

- 

          :id: 93dc9e02-b87d-11e9-b39b-8c16451d917b

          :parametrized: yes

          :setup: Standalone
@@ -453,7 +453,6 @@ 

  @pytest.mark.parametrize("mod", LIST_MOD_ATTR_ALL)

  def test_mods(topology_st, _create_index_entry, mod):

      """Test valid and invalid values of attributes mods

- 

          :id: 8c15874c-b87d-11e9-9c5d-8c16451d917b

          :parametrized: yes

          :setup: Standalone
@@ -479,7 +478,6 @@ 

  @pytest.mark.parametrize("mode", LIST_MOD_REPLACE_ALL)

  def test_mods_replace(topology_st, _create_index_entry, mode):

      """Test modes replace

- 

          :id: 2dd46b7a-b928-11e9-91dd-8c16451d917b

          :parametrized: yes

          :setup: Standalone
@@ -505,7 +503,6 @@ 

  @pytest.mark.parametrize("mode", LIST_MOD_DEL_ALL)

  def test_mods_delete(topology_st, _create_index_entry, mode):

      """Test modes delete

- 

          :id: 1dda055e-b928-11e9-b5c1-8c16451d917b

          :parametrized: yes

          :setup: Standalone
@@ -529,6 +526,337 @@ 

      entry.delete()

  

  

+ ATTR = ["( 2.16.840.1.113730.3.1.999999.0 NAME 'attroctetStringMatch' "

+         "DESC 'for testing matching rules' EQUALITY octetStringMatch "

+         "ORDERING octetStringOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.1 NAME 'attrbitStringMatch' DESC "

+         "'for testing matching rules' EQUALITY bitStringMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.6 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.2 NAME 'attrcaseExactIA5Match' "

+         "DESC 'for testing matching rules' EQUALITY caseExactIA5Match "

+         "SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.3 NAME 'attrcaseExactMatch' DESC "

+         "'for testing matching rules' EQUALITY caseExactMatch ORDERING "

+         "caseExactOrderingMatch SUBSTR caseExactSubstringsMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.15 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.4 NAME 'attrgeneralizedTimeMatch' DESC "

+         "'for testing matching rules' EQUALITY generalizedTimeMatch ORDERING "

+         "generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.5 NAME 'attrbooleanMatch' DESC "

+         "'for testing matching rules' EQUALITY booleanMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.7 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.6 NAME 'attrcaseIgnoreIA5Match' DESC "

+         "'for testing matching rules' EQUALITY caseIgnoreIA5Match SUBSTR "

+         "caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.7 NAME 'attrcaseIgnoreMatch' DESC "

+         "'for testing matching rules' EQUALITY caseIgnoreMatch ORDERING "

+         "caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch "

+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.8 NAME 'attrcaseIgnoreListMatch' DESC "

+         "'for testing matching rules' EQUALITY caseIgnoreListMatch SUBSTR "

+         "caseIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.9 NAME 'attrobjectIdentifierMatch' DESC "

+         "'for testing matching rules' EQUALITY objectIdentifierMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.10 NAME 'attrdistinguishedNameMatch' DESC "

+         "'for testing matching rules' EQUALITY distinguishedNameMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.11 NAME 'attrintegerMatch' DESC "

+         "'for testing matching rules' EQUALITY integerMatch ORDERING "

+         "integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.12 NAME 'attruniqueMemberMatch' DESC "

+         "'for testing matching rules' EQUALITY uniqueMemberMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.34 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.13 NAME 'attrnumericStringMatch' DESC "

+         "'for testing matching rules' EQUALITY numericStringMatch ORDERING "

+         "numericStringOrderingMatch SUBSTR numericStringSubstringsMatch "

+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.14 NAME 'attrtelephoneNumberMatch' DESC "

+         "'for testing matching rules' EQUALITY telephoneNumberMatch SUBSTR "

+         "telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 "

+         "X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.15 NAME 'attrdirectoryStringFirstComponentMatch' "

+         "DESC 'for testing matching rules' EQUALITY directoryStringFirstComponentMatch "

+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.16 NAME 'attrobjectIdentifierFirstComponentMatch' "

+         "DESC 'for testing matching rules' EQUALITY objectIdentifierFirstComponentMatch "

+         "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'matching rule tests' )",

+         "( 2.16.840.1.113730.3.1.999999.17 NAME 'attrintegerFirstComponentMatch' "

+         "DESC 'for testing matching rules' EQUALITY integerFirstComponentMatch SYNTAX "

+         "1.3.6.1.4.1.1466.115.121.1.27 X-ORIGIN 'matching rule tests' )"]

+ 

+ 

+ LIST_ATTR_TO_CREATE = [

+     ('entryoctetStringMatch0', 'AAAAAAAAAAAAAAE='),

+     ('entryoctetStringMatch1', 'AAAAAAAAAAAAAAI='),

+     ('entryoctetStringMatch2', 'AAAAAAAAAAAAAAM='),

+     ('entryoctetStringMatch3', 'AAAAAAAAAAAAAAQ='),

+     ('entryoctetStringMatch4', 'AAAAAAAAAAAAAAU='),

+     ('entryoctetStringMatch5', 'AAAAAAAAAAAAAAY='),

+     ('entrybitStringMatch0', "'0001'B"),

+     ('entrybitStringMatch1', "'0010'B"),

+     ('entrybitStringMatch2', "'0011'B"),

+     ('entrybitStringMatch3', "'0100'B"),

+     ('entrybitStringMatch4', "'0101'B"),

+     ('entrybitStringMatch5', "'0110'B"),

+     ('entrycaseExactIA5Match0', "Sprain"),

+     ('entrycaseExactIA5Match1', "sPrain"),

+     ('entrycaseExactIA5Match2', "spRain"),

+     ('entrycaseExactIA5Match3', "sprAin"),

+     ('entrycaseExactIA5Match4', "spraIn"),

+     ('entrycaseExactIA5Match5', "sprain"),

+     ('entrycaseExactMatch0', "ÇélIné Ändrè"),

+     ('entrycaseExactMatch1', "ÇéliNé Ändrè"),

+     ('entrycaseExactMatch2', "Çéliné ÄndrÈ"),

+     ('entrycaseExactMatch3', "Çéliné Ändrè"),

+     ('entrycaseExactMatch4', "çÉliné Ändrè"),

+     ('entrygeneralizedTimeMatch0', "20100218171300Z"),

+     ('entrygeneralizedTimeMatch1', "20100218171301Z"),

+     ('entrygeneralizedTimeMatch2', "20100218171302Z"),

+     ('entrygeneralizedTimeMatch3', "20100218171303Z"),

+     ('entrygeneralizedTimeMatch4', "20100218171304Z"),

+     ('entrygeneralizedTimeMatch5', "20100218171305Z"),

+     ('entrybooleanMatch0', "TRUE"),

+     ('entrybooleanMatch1', "FALSE"),

+     ('entrycaseIgnoreIA5Match0', "sprain1"),

+     ('entrycaseIgnoreIA5Match1', "sprain2"),

+     ('entrycaseIgnoreIA5Match2', "sprain3"),

+     ('entrycaseIgnoreIA5Match3', "sprain4"),

+     ('entrycaseIgnoreIA5Match4', "sprain5"),

+     ('entrycaseIgnoreIA5Match5', "sprain6"),

+     ('entrycaseIgnoreMatch0', "ÇélIné Ändrè1"),

+     ('entrycaseIgnoreMatch1', "ÇélIné Ändrè2"),

+     ('entrycaseIgnoreMatch2', "ÇélIné Ändrè3"),

+     ('entrycaseIgnoreMatch3', "ÇélIné Ändrè4"),

+     ('entrycaseIgnoreMatch4', "ÇélIné Ändrè5"),

+     ('entrycaseIgnoreMatch5', "ÇélIné Ändrè6"),

+     ('entrycaseIgnoreListMatch0', "foo1$bar"),

+     ('entrycaseIgnoreListMatch1', "foo2$bar"),

+     ('entrycaseIgnoreListMatch2', "foo3$bar"),

+     ('entrycaseIgnoreListMatch3', "foo4$bar"),

+     ('entrycaseIgnoreListMatch4', "foo5$bar"),

+     ('entrycaseIgnoreListMatch5', "foo6$bar"),

+     ('entryobjectIdentifierMatch0', "1.3.6.1.4.1.1466.115.121.1.15"),

+     ('entryobjectIdentifierMatch1', "1.3.6.1.4.1.1466.115.121.1.24"),

+     ('entryobjectIdentifierMatch2', "1.3.6.1.4.1.1466.115.121.1.26"),

+     ('entryobjectIdentifierMatch3', "1.3.6.1.4.1.1466.115.121.1.40"),

+     ('entryobjectIdentifierMatch4', "1.3.6.1.4.1.1466.115.121.1.41"),

+     ('entryobjectIdentifierMatch5', "1.3.6.1.4.1.1466.115.121.1.6"),

+     ('entrydistinguishedNameMatch0', "cn=foo1,cn=bar"),

+     ('entrydistinguishedNameMatch1', "cn=foo2,cn=bar"),

+     ('entrydistinguishedNameMatch2', "cn=foo3,cn=bar"),

+     ('entrydistinguishedNameMatch3', "cn=foo4,cn=bar"),

+     ('entrydistinguishedNameMatch4', "cn=foo5,cn=bar"),

+     ('entrydistinguishedNameMatch5', "cn=foo6,cn=bar"),

+     ('entryintegerMatch0', "-2"),

+     ('entryintegerMatch1', "-1"),

+     ('entryintegerMatch2', "0"),

+     ('entryintegerMatch3', "1"),

+     ('entryintegerMatch4', "2"),

+     ('entryintegerMatch5', "3"),

+     ('entryuniqueMemberMatch0', "cn=foo1,cn=bar#'0001'B"),

+     ('entryuniqueMemberMatch1', "cn=foo2,cn=bar#'0010'B"),

+     ('entryuniqueMemberMatch2', "cn=foo3,cn=bar#'0011'B"),

+     ('entryuniqueMemberMatch3', "cn=foo4,cn=bar#'0100'B"),

+     ('entryuniqueMemberMatch4', "cn=foo5,cn=bar#'0101'B"),

+     ('entryuniqueMemberMatch5', "cn=foo6,cn=bar#'0110'B"),

+     ('entrynumericStringMatch0', "00001"),

+     ('entrynumericStringMatch1', "00002"),

+     ('entrynumericStringMatch2', "00003"),

+     ('entrynumericStringMatch3', "00004"),

+     ('entrynumericStringMatch4', "00005"),

+     ('entrynumericStringMatch5', "00006"),

+     ('entrytelephoneNumberMatch0', "+1 408 555 4798"),

+     ('entrytelephoneNumberMatch1', "+1 408 555 5625"),

+     ('entrytelephoneNumberMatch2', "+1 408 555 6201"),

+     ('entrytelephoneNumberMatch3', "+1 408 555 8585"),

+     ('entrytelephoneNumberMatch4', "+1 408 555 9187"),

+     ('entrytelephoneNumberMatch5', "+1 408 555 9423"),

+     ('entrydirectoryStringFirstComponentMatch0', "ÇélIné Ändrè1"),

+     ('entrydirectoryStringFirstComponentMatch1', "ÇélIné Ändrè2"),

+     ('entrydirectoryStringFirstComponentMatch2', "ÇélIné Ändrè3"),

+     ('entrydirectoryStringFirstComponentMatch3', "ÇélIné Ändrè4"),

+     ('entrydirectoryStringFirstComponentMatch4', "ÇélIné Ändrè5"),

+     ('entrydirectoryStringFirstComponentMatch5', "ÇélIné Ändrè6"),

+     ('entryobjectIdentifierFirstComponentMatch0', "1.3.6.1.4.1.1466.115.121.1.15"),

+     ('entryobjectIdentifierFirstComponentMatch1', "1.3.6.1.4.1.1466.115.121.1.24"),

+     ('entryobjectIdentifierFirstComponentMatch2', "1.3.6.1.4.1.1466.115.121.1.26"),

+     ('entryobjectIdentifierFirstComponentMatch3', "1.3.6.1.4.1.1466.115.121.1.40"),

+     ('entryobjectIdentifierFirstComponentMatch4', "1.3.6.1.4.1.1466.115.121.1.41"),

+     ('entryobjectIdentifierFirstComponentMatch5', "1.3.6.1.4.1.1466.115.121.1.6"),

+     ('entryintegerFirstComponentMatch0', "-2"),

+     ('entryintegerFirstComponentMatch1', "-1"),

+     ('entryintegerFirstComponentMatch2', "0"),

+     ('entryintegerFirstComponentMatch3', "1"),

+     ('entryintegerFirstComponentMatch4', "2"),

+     ('entryintegerFirstComponentMatch5', "3")]

+ 

+ 

+ @pytest.fixture(scope="module")

+ def _create_entries(topology_st):

+     """

+     Add attribute types to schema and Create filter

+     entries(Entry with extensibleObject)

+     """

+     for attribute in ATTR:

+         Schema(topology_st.standalone).add('attributetypes', attribute)

+     cos = CosTemplates(topology_st.standalone, DEFAULT_SUFFIX)

+     # Entry with extensibleObject

+     for attr, value in LIST_ATTR_TO_CREATE:

+         cos.create(properties={

+             'cn': attr,

+             'attr' + attr.split('entry')[1][:-1]: value

+         })

+ 

+ 

+ FILTER_VALUES = [

+     ["(attrbitStringMatch='0001'B)", 1,

+      "(attrbitStringMatch:bitStringMatch:='000100000'B)"],

+     ["(attrgeneralizedTimeMatch=20100218171300Z)", 1,

+      "(attrcaseExactIA5Match=SPRAIN)"],

+     ["(attrcaseExactMatch>=ÇélIné Ändrè)", 5,

+      "(attrcaseExactMatch=ÇéLINé ÄNDRè)"],

+     ["(attrcaseExactMatch:caseExactMatch:=ÇélIné Ändrè)", 1,

+      "(attrcaseExactMatch>=çéliné ändrè)"],

+     ["(attrcaseExactIA5Match=Sprain)", 1,

+      "(attrgeneralizedTimeMatch=20300218171300Z)"],

+     ["(attrbooleanMatch=TRUE)", 1,

+      "(attrgeneralizedTimeMatch>=20300218171300Z)"],

+     ["(attrcaseIgnoreIA5Match=sprain1)", 1,

+      "(attrcaseIgnoreIA5Match=sprain9999)"],

+     ["(attrcaseIgnoreMatch=ÇélIné Ändrè1)", 1,

+      "(attrcaseIgnoreMatch=ÇélIné Ändrè9999)"],

+     ["(attrcaseIgnoreMatch>=ÇélIné Ändrè1)", 6,

+      "(attrcaseIgnoreMatch>=ÇélIné Ändrè9999)"],

+     ["(attrcaseIgnoreListMatch=foo1$bar)", 1,

+      "(attrcaseIgnoreListMatch=foo1$bar$baz$biff)"],

+     ["(attrobjectIdentifierMatch=1.3.6.1.4.1.1466.115.121.1.15)", 1,

+      "(attrobjectIdentifierMatch=1.3.6.1.4.1.1466.115.121.1.15.99999)"],

+     ["(attrgeneralizedTimeMatch>=20100218171300Z)", 6,

+      "(attrdirectoryStringFirstComponentMatch=ÇélIné Ändrè9999)"],

+     ["(attrdirectoryStringFirstComponentMatch=ÇélIné Ändrè1)", 1,

+      "(attrobjectIdentifierFirstComponentMatch=1.3.6.1.4.1.1466.115.121.1.15.99999)"],

+     ["(attrobjectIdentifierFirstComponentMatch=1.3.6.1.4.1.1466.115.121.1.15)", 1,

+      "(attrdistinguishedNameMatch=cn=foo1,cn=bar,cn=baz)"],

+     ["(attrdistinguishedNameMatch=cn=foo1,cn=bar)", 1,

+      "(attrintegerMatch=-20)"],

+     ["(attrintegerMatch=-2)", 1,

+      "(attrintegerMatch>=20)"],

+     ["(attrintegerMatch>=-2)", 6,

+      "(attrintegerFirstComponentMatch=-20)"],

+     ["(attrintegerFirstComponentMatch=-2)", 1,

+      "(attruniqueMemberMatch=cn=foo1,cn=bar#'00010000'B)"],

+     ["(attruniqueMemberMatch=cn=foo1,cn=bar#'0001'B)", 1,

+      "(attrnumericStringMatch=000000001)"],

+     ["(attrnumericStringMatch=00001)", 1,

+      "(attrnumericStringMatch>=01)"],

+     ["(attrnumericStringMatch>=00001)", 6,

+      "(attrtelephoneNumberMatch=+2 408 555 4798)"],

+     ["(attrtelephoneNumberMatch=+1 408 555 4798)", 1,

+      "(attroctetStringMatch=AAAAAAAAAAAAAAEB)"],

+     ["(attroctetStringMatch=AAAAAAAAAAAAAAE=)", 1,

+      "(attroctetStringMatch>=AAAAAAAAAAABAQE=)"],

+     ["(attroctetStringMatch>=AAAAAAAAAAAAAAE=)", 6,

+      "(attrdirectoryStringFirstComponentMatch=ÇélIné Ändrè9998)"]]

+ 

+ 

+ def test_search_positive_negative(topology_st, _create_entries):

+     """Filters with positive and with no output.

+         :id: abe3e6dd-9ecc-12e8-adf0-8c16451d917b

+         :parametrized: yes

+         :setup: Standalone

+         :steps:

+             1.For valid filer output should match the exact value given.

+             2. For invalid filter there should not be any output.

+         :expected results:

+             1. Pass

+             2. Pass

+     """

+     cos = CosTemplates(topology_st.standalone, DEFAULT_SUFFIX)

+     for attr, value, negative_filter in FILTER_VALUES:

+         assert len(cos.filter(attr)) == value

+         assert not cos.filter(negative_filter)

+ 

+ 

+ LIST_EXT_ATTR_COUNT = [

+     ("(attrbitStringMatch:bitStringMatch:='0001'B)", 1),

+     ("(attrcaseExactIA5Match:caseExactIA5Match:=Sprain)", 1),

+     ("(attrcaseExactMatch:caseExactMatch:=ÇélIné Ändrè)", 1),

+     ("(attrcaseExactMatch:caseExactOrderingMatch:=ÇélIné Ändrè)", 5),

+     ("(attrgeneralizedTimeMatch:generalizedTimeMatch:=20100218171300Z)", 1),

+     ("(attrgeneralizedTimeMatch:generalizedTimeOrderingMatch:=20100218171300Z)", 6),

+     ("(attrbooleanMatch:booleanMatch:=TRUE)", 1),

+     ("(attrcaseIgnoreIA5Match:caseIgnoreIA5Match:=sprain1)", 1),

+     ("(attrcaseIgnoreMatch:caseIgnoreMatch:=ÇélIné Ändrè1)", 1),

+     ("(attrcaseIgnoreMatch:caseIgnoreOrderingMatch:=ÇélIné Ändrè1)", 6),

+     ("(attrcaseIgnoreListMatch:caseIgnoreListMatch:=foo1$bar)", 1),

+     ("(attrobjectIdentifierMatch:objectIdentifierMatch:=1.3.6.1.4.1.1466.115.121.1.15)", 1),

+     ("(attrdirectoryStringFirstComponentMatch:directoryString"

+      "FirstComponentMatch:=ÇélIné Ändrè1)", 1),

+     ("(attrobjectIdentifierFirstComponentMatch:objectIdentifier"

+      "FirstComponentMatch:=1.3.6.1.4.1.1466.115.121.1.15)", 1),

+     ("(attrdistinguishedNameMatch:distinguishedNameMatch:=cn=foo1,cn=bar)", 1),

+     ("(attrintegerMatch:integerMatch:=-2)", 1),

+     ("(attrintegerMatch:integerOrderingMatch:=-2)", 6),

+     ("(attrintegerFirstComponentMatch:integerFirstComponentMatch:=-2)", 1),

+     ("(attruniqueMemberMatch:uniqueMemberMatch:=cn=foo1,cn=bar#'0001'B)", 1),

+     ("(attrnumericStringMatch:numericStringMatch:=00001)", 1),

+     ("(attrnumericStringMatch:numericStringMatch:=00001)", 1),

+     ("(attrtelephoneNumberMatch:telephoneNumberMatch:=+1 408 555 4798)", 1),

+     ("(attroctetStringMatch:octetStringMatch:=AAAAAAAAAAAAAAE=)", 1),

+     ("(attroctetStringMatch:octetStringOrderingMatch:=AAAAAAAAAAAAAAE=)", 6),

+     ("(attrcaseExactMatch=*ÇélIné Ändrè*)", 1),

+     ("(attrcaseExactMatch=ÇélIné Ändrè*)", 1),

+     ("(attrcaseExactMatch=*ÇélIné Ändrè)", 1),

+     ("(attrcaseExactMatch=*é Ä*)", 5),

+     ("(attrcaseExactIA5Match=*Sprain*)", 1),

+     ("(attrcaseExactIA5Match=Sprain*)", 1),

+     ("(attrcaseExactIA5Match=*Sprain)", 1),

+     ("(attrcaseExactIA5Match=*rai*)", 3),

+     ("(attrcaseIgnoreIA5Match=*sprain1*)", 1),

+     ("(attrcaseIgnoreIA5Match=sprain1*)", 1),

+     ("(attrcaseIgnoreIA5Match=*sprain1)", 1),

+     ("(attrcaseIgnoreIA5Match=*rai*)", 6),

+     ("(attrcaseIgnoreMatch=*ÇélIné Ändrè1*)", 1),

+     ("(attrcaseIgnoreMatch=ÇélIné Ändrè1*)", 1),

+     ("(attrcaseIgnoreMatch=*ÇélIné Ändrè1)", 1),

+     ("(attrcaseIgnoreMatch=*é Ä*)", 6),

+     ("(attrcaseIgnoreListMatch=*foo1$bar*)", 1),

+     ("(attrcaseIgnoreListMatch=foo1$bar*)", 1),

+     ("(attrcaseIgnoreListMatch=*foo1$bar)", 1),

+     ("(attrcaseIgnoreListMatch=*1$b*)", 1),

+     ("(attrnumericStringMatch=*00001*)", 1),

+     ("(attrnumericStringMatch=00001*)", 1),

+     ("(attrnumericStringMatch=*00001)", 1),

+     ("(attrnumericStringMatch=*000*)", 6),

+     ("(attrtelephoneNumberMatch=*+1 408 555 4798*)", 1),

+     ("(attrtelephoneNumberMatch=+1 408 555 4798*)", 1),

+     ("(attrtelephoneNumberMatch=*+1 408 555 4798)", 1),

+     ("(attrtelephoneNumberMatch=* 55*)", 6)]

+ 

+ 

+ @pytest.mark.parametrize("attr, value", LIST_EXT_ATTR_COUNT)

+ def test_do_extensible_search(topology_st, _create_entries, attr, value):

+     """Match filter and output.

+         :id: abe3e6dd-9ecc-11e8-adf0-8c16451d917c

+         :parametrized: yes

+         :setup: Standalone

+         :steps:

+             1. Filer output should match the exact value given.

+         :expected results:

+             1. Pass

+     """

+     cos = CosTemplates(topology_st.standalone, DEFAULT_SUFFIX)

+     assert len(cos.filter(attr)) == value

+ 

+ 

  if __name__ == '__main__':

      CURRENT_FILE = os.path.realpath(__file__)

      pytest.main("-s -v %s" % CURRENT_FILE)

Bug Description: Investigate and port TET matching rules filter tests(last test cases for match index)

Fixes: https://pagure.io/389-ds-base/issue/48851

Author: aborah

Reviewed by: ???

rebased onto 3109e4af8ac52ffbaea7497bcbbeb7699df682d0

4 years ago

rebased onto 49e2299

4 years ago

Please add :parametrized: yes here.

Done .

Pull-Request has been merged by vashirov

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/3780

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