Skip to content

Commit 2b7576f

Browse files
authored
Merge pull request #142 from Flagsmith/release/2.2.0
Release v2.2.0
2 parents 6c822d4 + 284a01d commit 2b7576f

File tree

6 files changed

+38
-3
lines changed

6 files changed

+38
-3
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ repos:
55
- id: isort
66
name: isort (python)
77
- repo: https://github.com/psf/black
8-
rev: 21.6b0
8+
rev: 22.6.0
99
hooks:
1010
- id: black
1111
language_version: python3

flag_engine/identities/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,12 @@ def update_traits(self, traits: typing.List[TraitModel]) -> typing.List[TraitMod
3939

4040
self.identity_traits = list(existing_traits.values())
4141
return self.identity_traits
42+
43+
def prune_features(self, valid_feature_names: typing.List[str]) -> None:
44+
self.identity_features = IdentityFeaturesList(
45+
[
46+
fs
47+
for fs in self.identity_features
48+
if fs.feature.name in valid_feature_names
49+
]
50+
)

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
[flake8]
2-
max-line-length = 88
2+
max-line-length = 120

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="flagsmith-flag-engine",
5-
version="2.1.2",
5+
version="2.2.0",
66
author="Flagsmith",
77
author_email="[email protected]",
88
packages=find_packages(include=["flag_engine", "flag_engine.*"]),

tests/unit/conftest.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,16 @@ def feature_2():
7676
return FeatureModel(id=2, name="feature_2", type=STANDARD)
7777

7878

79+
@pytest.fixture()
80+
def feature_state_1(feature_1):
81+
return FeatureStateModel(feature=feature_1, enabled=True)
82+
83+
84+
@pytest.fixture()
85+
def feature_state_2(feature_2):
86+
return FeatureStateModel(feature=feature_2, enabled=True)
87+
88+
7989
@pytest.fixture()
8090
def environment(feature_1, feature_2, project):
8191
return EnvironmentModel(

tests/unit/identities/test_identities_models.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,19 @@ def test_append_feature_state(identity, feature_1):
9898
identity.identity_features.append(fs_1)
9999
# Then
100100
fs_1 in identity.identity_features
101+
102+
103+
def test_prune_features_only_keeps_valid_features(
104+
identity, feature_state_1, feature_state_2
105+
):
106+
# Given
107+
identity.identity_features.append(feature_state_1)
108+
identity.identity_features.append(feature_state_2)
109+
110+
valid_features = [feature_state_1.feature.name]
111+
112+
# When
113+
identity.prune_features(valid_features)
114+
115+
# Then
116+
assert identity.identity_features == [feature_state_1]

0 commit comments

Comments
 (0)