Skip to content

Commit e2fb39a

Browse files
authored
fix: Do not track empty assignment events (#39)
1 parent 0951c1a commit e2fb39a

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

src/amplitude_experiment/assignment/assignment_filter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ def __init__(self, size: int, ttl_millis: int = DAY_MILLIS):
88
self.cache = Cache(size, ttl_millis)
99

1010
def should_track(self, assignment: Assignment) -> bool:
11+
if not assignment.results:
12+
return False
1113
canonical_assignment = assignment.canonicalize()
1214
track = self.cache.get(canonical_assignment) is None
1315
if track:

src/amplitude_experiment/local/client.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ def evaluate(self, user: User, flag_keys: List[str] = None) -> Dict[str, Variant
6969
"""
7070
variants = {}
7171
if self.flags is None or len(self.flags) == 0:
72-
if self.assignment_service:
73-
self.assignment_service.track(Assignment(user, {}))
7472
return variants
7573
user_json = str(user)
7674
self.logger.debug(f"[Experiment] Evaluate: User: {user_json} - Flags: {self.flags}")

tests/local/assignment/assignment_filter_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ def test_empty_results(self):
6767
assignment1 = Assignment(user1, {})
6868
assignment2 = Assignment(user1, {})
6969
assignment3 = Assignment(user2, {})
70-
self.assertTrue(assignment_filter.should_track(assignment1))
70+
self.assertFalse(assignment_filter.should_track(assignment1))
7171
self.assertFalse(assignment_filter.should_track(assignment2))
72-
self.assertTrue(assignment_filter.should_track(assignment3))
72+
self.assertFalse(assignment_filter.should_track(assignment3))
7373

7474
def test_duplicate_assignments_with_different_ordering(self):
7575
assignment_filter = AssignmentFilter(100)

tests/local/assignment/assignment_service_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,8 @@ def test_tracking_called(self):
3939
instance = Amplitude('')
4040
instance.track = MagicMock()
4141
service = AssignmentService(instance, AssignmentFilter(2))
42-
service.track(Assignment(user, {}))
42+
results = {}
43+
result = FlagResult({'variant': {'key': 'on'}, 'isDefaultVariant': False})
44+
results['flag-key-1'] = result
45+
service.track(Assignment(user, results))
4346
self.assertTrue(instance.track.called)

0 commit comments

Comments
 (0)