7

fixes match any testing

This commit is contained in:
Boris Besemer
2017-01-10 12:52:10 +01:00
parent cf946f2bee
commit b7ca6541f4
3 changed files with 10 additions and 9 deletions

View File

@ -24,14 +24,17 @@ class BaseSegmentsAdapter(object):
def check_segment_exists(self):
return None
def _test_rules(self, rules, request):
def _test_rules(self, rules, request, match_any=False):
if len(rules) > 0:
for rule in rules:
result = rule.test_user(request)
if match_any:
if result is True:
return result
if result is False:
elif result is False:
return False
if not match_any:
return True
return False
@ -81,7 +84,7 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
segment_rules = []
for rule in rules:
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:
self.add(segment)

View File

@ -336,7 +336,7 @@ class PersonalisablePage(Page):
return not self.canonical_page and self.has_variations
@cached_classmethodx
@cached_classmethod
def get_edit_handler(cls):
tabs = []
if cls.content_panels:

View File

@ -227,8 +227,6 @@ class TestUserSegmenting(object):
)
client.get('/?test=test')
import pdb
pdb.set_trace()
assert any(item['encoded_name'] == 'match-any' for item in client.session['segments'])