Skip to content

Commit cfe7669

Browse files
authored
Merge pull request #64 from reddit/denisse--add-loid-created-ms
2 parents 24cb59a + 0c6e089 commit cfe7669

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

reddit_decider/__init__.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(
6464
oauth_client_id: Optional[str] = None,
6565
origin_service: Optional[str] = None,
6666
cookie_created_timestamp: Optional[float] = None,
67+
loid_created_timestamp: Optional[float] = None,
6768
extracted_fields: Optional[dict] = None,
6869
):
6970
self._user_id = user_id
@@ -75,6 +76,7 @@ def __init__(
7576
self._oauth_client_id = oauth_client_id
7677
self._origin_service = origin_service
7778
self._cookie_created_timestamp = cookie_created_timestamp
79+
self._loid_created_timestamp = loid_created_timestamp
7880
self._extracted_fields = extracted_fields
7981

8082
def to_dict(self) -> Dict:
@@ -90,6 +92,7 @@ def to_dict(self) -> Dict:
9092
"oauth_client_id": self._oauth_client_id,
9193
"origin_service": self._origin_service,
9294
"cookie_created_timestamp": self._cookie_created_timestamp,
95+
"loid_created_timestamp": self._loid_created_timestamp,
9396
"other_fields": ef,
9497
**ef,
9598
}
@@ -1053,6 +1056,17 @@ def make_object_for_context(self, name: str, span: Span) -> Decider:
10531056
f"Error while accessing `user.event_fields()` in `make_object_for_context()`. details: {exc}"
10541057
)
10551058

1059+
loid_created_timestamp = None
1060+
try:
1061+
if isinstance(ec.authentication_token, ValidatedAuthenticationToken):
1062+
loid_cms = ec.authentication_token.loid_created_ms
1063+
if loid_cms:
1064+
loid_created_timestamp = loid_cms
1065+
except Exception as exc:
1066+
logger.info(
1067+
f"Unable to access `ec.authentication_token.loid_created_ms` in `make_object_for_context()`. details: {exc}"
1068+
)
1069+
10561070
oauth_client_id = None
10571071
try:
10581072
if isinstance(ec.authentication_token, ValidatedAuthenticationToken):
@@ -1115,6 +1129,7 @@ def make_object_for_context(self, name: str, span: Span) -> Decider:
11151129
device_id=device_id,
11161130
oauth_client_id=oauth_client_id,
11171131
cookie_created_timestamp=cookie_created_timestamp,
1132+
loid_created_timestamp=loid_created_timestamp,
11181133
extracted_fields=parsed_extracted_fields,
11191134
)
11201135
except Exception as exc:

tests/decider_tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
COUNTRY_CODE = "US"
2828
DEVICE_ID = "abc"
2929
COOKIE_CREATED_TIMESTAMP = 1234
30+
LOID_CREATED_TIMESTAMP = 123456
3031
LOCALE_CODE = "us_en"
3132
ORIGIN_SERVICE = "origin"
3233
APP_NAME = "ios"
@@ -115,6 +116,9 @@ def setUp(self):
115116
spec=ValidatedAuthenticationToken
116117
)
117118
self.mock_span.context.edge_context.authentication_token.oauth_client_id = AUTH_CLIENT_ID
119+
self.mock_span.context.edge_context.authentication_token.loid_created_ms = (
120+
LOID_CREATED_TIMESTAMP
121+
)
118122
self.mock_span.context.edge_context.geolocation.country_code = COUNTRY_CODE
119123
self.mock_span.context.edge_context.locale.locale_code = LOCALE_CODE
120124
self.mock_span.context.edge_context.origin_service.name = ORIGIN_SERVICE
@@ -154,6 +158,7 @@ def test_make_object_for_context_and_decider_context(self):
154158
decider_ctx_dict["cookie_created_timestamp"],
155159
self.mock_span.context.edge_context.user.event_fields().get("cookie_created_timestamp"),
156160
)
161+
self.assertEqual(decider_ctx_dict["loid_created_timestamp"], LOID_CREATED_TIMESTAMP)
157162
self.assertEqual(decider_ctx_dict["app_name"], APP_NAME)
158163
self.assertEqual(decider_ctx_dict["other_fields"]["app_name"], APP_NAME)
159164
self.assertEqual(decider_ctx_dict["app_version"], APP_VERSION)
@@ -375,6 +380,7 @@ def setUp(self):
375380
device_id=DEVICE_ID,
376381
oauth_client_id=AUTH_CLIENT_ID,
377382
cookie_created_timestamp=COOKIE_CREATED_TIMESTAMP,
383+
loid_created_timestamp=LOID_CREATED_TIMESTAMP,
378384
extracted_fields=decider_field_extractor(_request=None),
379385
)
380386

@@ -1290,6 +1296,7 @@ def setUp(self):
12901296
device_id=DEVICE_ID,
12911297
oauth_client_id=AUTH_CLIENT_ID,
12921298
cookie_created_timestamp=COOKIE_CREATED_TIMESTAMP,
1299+
loid_created_timestamp=LOID_CREATED_TIMESTAMP,
12931300
)
12941301

12951302
def setup_decider(self, file_name, decider_context):

0 commit comments

Comments
 (0)