Просмотр исходного кода

chore(flagpole): Makes create_at field required, with no defaults (#74217)

Gabe Villalobos 8 месяцев назад
Родитель
Сommit
4af7bd123d
2 измененных файлов с 4 добавлено и 9 удалено
  1. 1 3
      src/flagpole/__init__.py
  2. 3 6
      tests/flagpole/test_feature.py

+ 1 - 3
src/flagpole/__init__.py

@@ -95,9 +95,7 @@ class Feature(BaseModel):
     enabled: bool = Field(default=True, description="Whether or not the feature is enabled.")
     "Whether or not the feature is enabled."
 
-    created_at: datetime = Field(
-        description="The datetime when this feature was created.", default_factory=datetime.now
-    )
+    created_at: datetime = Field(description="The datetime when this feature was created.")
     "The datetime when this feature was created."
 
     def match(self, context: EvaluationContext) -> bool:

+ 3 - 6
tests/flagpole/test_feature.py

@@ -18,12 +18,6 @@ class TestParseFeatureConfig:
     def get_is_true_context_builder(self, is_true_value: bool):
         return ContextBuilder().add_context_transformer(lambda _data: dict(is_true=is_true_value))
 
-    def test_valid_without_created_at(self):
-        feature = Feature.from_feature_config_json("foo", '{"owner": "test", "segments":[]}')
-        assert feature.name == "foo"
-        assert isinstance(feature.created_at, datetime)
-        assert feature.segments == []
-
     def test_feature_with_empty_segments(self):
         feature = Feature.from_feature_config_json(
             "foobar",
@@ -171,6 +165,7 @@ class TestParseFeatureConfig:
             """
             {
                 "owner": "test-user",
+                "created_at": "2023-10-12T00:00:00.000Z",
                 "segments": [{
                     "name": "always_pass_segment",
                     "rollout": 100,
@@ -195,6 +190,7 @@ class TestParseFeatureConfig:
             {
                 "owner": "test-user",
                 "enabled": false,
+                "created_at": "2023-12-12T00:00:00.000Z",
                 "segments": [{
                     "name": "always_pass_segment",
                     "rollout": 100,
@@ -218,6 +214,7 @@ class TestParseFeatureConfig:
             """
             {
                 "owner": "test-user",
+                "created_at": "2023-12-12T00:00:00.000Z",
                 "segments": [{
                     "name": "always_pass_segment",
                     "rollout": 100,