Skip to content

Commit c6f4153

Browse files
committed
bump decider + partial init tests
1 parent ef0d0c6 commit c6f4153

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-r requirements-transitive.txt
22
baseplate==2.0.0a1
33
black==21.4b2
4-
reddit-decider==1.2.26
4+
reddit-decider==1.2.28
55
flake8==3.9.1
66
mypy==0.790
77
pyramid==2.0 # required for `from baseplate.frameworks.pyramid import BaseplateRequest` which calls `import pyramid.events`

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
install_requires=[
2020
"baseplate>=2.0.0a1,<3.0",
2121
"reddit-edgecontext>=1.0.0a3,<2.0",
22-
"reddit-decider~=1.2.26",
22+
"reddit-decider~=1.2.28",
2323
"typing_extensions>=3.10.0.0,<5.0",
2424
],
2525
package_data={"reddit_experiments": ["py.typed"]},

tests/decider_tests.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ def test_get_variant(self):
462462
experiment_name="exp_1", variant=variant, event_fields=event_fields
463463
)
464464

465-
def test_none_returned_on_variant_call_with_bad_id(self):
465+
def test_none_returned_on_get_variant_call_with_bad_id(self):
466466
config = {
467467
"test": {
468468
"id": "1",
@@ -496,7 +496,7 @@ def test_none_returned_on_variant_call_with_bad_id(self):
496496
self.assertEqual(self.event_logger.log.call_count, 0)
497497

498498
assert any(
499-
"rust_decider.init() has error: Decider initialization failed: Partially loaded decider: 1 features failed to load."
499+
"Partially loaded Decider: 1 features failed to load: {\'test\': \'invalid type: string \"1\", expected u32\'}"
500500
in x.getMessage()
501501
for x in captured.records
502502
)
@@ -522,6 +522,41 @@ def test_none_returned_on_get_variant_call_with_no_experiment_data(self):
522522
variant = decider.get_variant("test")
523523
self.assertEqual(variant, None)
524524

525+
def test_get_variant_calls_with_partial_data(self):
526+
config = {
527+
"test": {
528+
"id": 1,
529+
"name": "test",
530+
"owner": "test_owner",
531+
"type": "dynamic_config",
532+
"version": "1",
533+
"start_ts": 0,
534+
"stop_ts": 0,
535+
}
536+
}
537+
self.exp_base_config.update(config)
538+
539+
with create_temp_config_file(self.exp_base_config) as f:
540+
decider = setup_decider(
541+
f, self.dc, self.mock_span, self.event_logger
542+
)
543+
544+
self.assertEqual(self.event_logger.log.call_count, 0)
545+
546+
# get_variant_for_identifier()
547+
variant = decider.get_variant_for_identifier("test", USER_ID, "user_id")
548+
self.assertEqual(variant, None)
549+
550+
variant = decider.get_variant_for_identifier("exp_1", USER_ID, "user_id")
551+
self.assertEqual(variant, "variant_4")
552+
553+
# get_variant()
554+
variant = decider.get_variant("test")
555+
self.assertEqual(variant, None)
556+
557+
variant = decider.get_variant("exp_1")
558+
self.assertEqual(variant, "variant_4")
559+
525560
def test_none_returned_on_get_variant_call_with_experiment_not_found(self):
526561
with create_temp_config_file({}) as f:
527562
decider = setup_decider(

0 commit comments

Comments
 (0)