fixes match any testing
This commit is contained in:
@ -24,15 +24,18 @@ class BaseSegmentsAdapter(object):
|
|||||||
def check_segment_exists(self):
|
def check_segment_exists(self):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _test_rules(self, rules, request):
|
def _test_rules(self, rules, request, match_any=False):
|
||||||
if len(rules) > 0:
|
if len(rules) > 0:
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
result = rule.test_user(request)
|
result = rule.test_user(request)
|
||||||
|
if match_any:
|
||||||
|
if result is True:
|
||||||
|
return result
|
||||||
|
|
||||||
if result is False:
|
elif result is False:
|
||||||
return False
|
return False
|
||||||
|
if not match_any:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -81,7 +84,7 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
|
|||||||
segment_rules = []
|
segment_rules = []
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
segment_rules += rule.objects.filter(segment=segment)
|
segment_rules += rule.objects.filter(segment=segment)
|
||||||
result = self._test_rules(segment_rules, self.request)
|
result = self._test_rules(segment_rules, self.request, match_any=segment.match_any)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
self.add(segment)
|
self.add(segment)
|
||||||
|
@ -336,7 +336,7 @@ class PersonalisablePage(Page):
|
|||||||
return not self.canonical_page and self.has_variations
|
return not self.canonical_page and self.has_variations
|
||||||
|
|
||||||
|
|
||||||
@cached_classmethodx
|
@cached_classmethod
|
||||||
def get_edit_handler(cls):
|
def get_edit_handler(cls):
|
||||||
tabs = []
|
tabs = []
|
||||||
if cls.content_panels:
|
if cls.content_panels:
|
||||||
|
@ -227,9 +227,7 @@ class TestUserSegmenting(object):
|
|||||||
)
|
)
|
||||||
|
|
||||||
client.get('/?test=test')
|
client.get('/?test=test')
|
||||||
import pdb
|
|
||||||
pdb.set_trace()
|
|
||||||
|
|
||||||
assert any(item['encoded_name'] == 'match-any' for item in client.session['segments'])
|
assert any(item['encoded_name'] == 'match-any' for item in client.session['segments'])
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
Reference in New Issue
Block a user