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 ], ]))
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)
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"])
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"])
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"])
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"])
def test_includes_correct_created_date(self): meta = FeatureFlagStoreMeta(self.now, {}) self.assertEqual(self.now, meta.to_dict()["created_date"])