예제 #1
0
    def test_when_asynch_is_false_sets_meta_in_primary_and_replicas(self):
        feature_name = self.txt()

        meta = FeatureFlagStoreMeta(datetime(2018, 5, 4))

        self.store.create(feature_name, asynch=False)
        self.store.set_meta(feature_name, meta, asynch=False)

        self.assertTrue(
            all([
                self.primary.get(feature_name).meta == meta.to_dict(),
                *[
                    replica.get(feature_name).meta == meta.to_dict()
                    for replica in self.replicas
                ],
            ]))
예제 #2
0
    def test_converts_metadata_properly(self):
        feature_name = self.txt()

        self.store.create(feature_name, is_enabled=True)

        item = self.store.get(feature_name)

        expected = FeatureFlagStoreMeta(
            created_date=self.meta.created_date,
            client_data=json.loads(self.meta.client_data),
            conditions=[Condition(foo__lte=99)],
            bucketer=ConsistentHashPercentageBucketer(
                key_whitelist=["baz"],
                percentage=LinearRampPercentage(
                    initial_time=json.loads(self.meta.bucketer)["percentage"][
                        "initial_time"
                    ]
                ),
            ),
        )

        self.assertEqual(expected.to_dict(), item.meta)
예제 #3
0
 def test_includes_correct_meta(self):
     client_data = {"foo": "bar"}
     meta = FeatureFlagStoreMeta(self.now, client_data)
     item = FeatureFlagStoreItem(self.txt(), True, meta)
     self.assertEqual(meta.to_dict(), item.to_dict()["meta"])
예제 #4
0
 def test_includes_currect_bucketer(self):
     bucketer = PercentageBucketer(percentage=Percentage(0.3))
     meta = FeatureFlagStoreMeta(self.now, bucketer=bucketer)
     self.assertEqual(bucketer.to_dict(), meta.to_dict()["bucketer"])
예제 #5
0
 def test_includes_correct_conditions(self):
     conditions = [Condition(foo=1), Condition(bar="baz")]
     meta = FeatureFlagStoreMeta(self.now, conditions=conditions)
     serialized_conditions = [c.to_dict() for c in conditions]
     self.assertEqual(serialized_conditions, meta.to_dict()["conditions"])
예제 #6
0
 def test_includes_correct_client_data(self):
     client_data = {"foo": 99, "bar": "ajds"}
     meta = FeatureFlagStoreMeta(self.now, client_data)
     self.assertEqual(client_data, meta.to_dict()["client_data"])
예제 #7
0
 def test_includes_correct_created_date(self):
     meta = FeatureFlagStoreMeta(self.now, {})
     self.assertEqual(self.now, meta.to_dict()["created_date"])