from label_studio.core.feature_flags.base import flag_set
|
from label_studio.core.feature_flags.utils import get_user_repr_from_organization
|
|
|
def test_get_user_repr_from_organization_owner_email_and_org_id(django_user_model):
|
# Create a minimal organization-like object
|
class Org:
|
def __init__(self, id, email):
|
self.id = id
|
|
class CreatedBy:
|
def __init__(self, email):
|
self.email = email
|
|
self.created_by = CreatedBy(email)
|
|
org = Org(123, 'owner@example.com')
|
|
ctx = get_user_repr_from_organization(org)
|
|
assert ctx['key'] == 'owner@example.com'
|
assert ctx['custom']['organization'] == 'owner@example.com'
|
assert ctx['custom']['organization_id'] == 123
|
|
|
def test_flag_set_with_organization_context_env_override(monkeypatch, settings):
|
# Ensure offline mode/env control for deterministic behavior
|
settings.FEATURE_FLAGS_OFFLINE = True
|
|
# Use env override path for flag resolution
|
monkeypatch.setenv('fflag_feat_test_org_targeting', 'true')
|
|
class Org:
|
def __init__(self, id, email):
|
self.id = id
|
|
class CreatedBy:
|
def __init__(self, email):
|
self.email = email
|
|
self.created_by = CreatedBy(email)
|
|
org = Org(42, 'owner@example.com')
|
|
assert flag_set('fflag_feat_test_org_targeting', organization=org, override_system_default=False) is True
|
|
# Unset env should fall back to override_system_default=False
|
monkeypatch.delenv('fflag_feat_test_org_targeting', raising=False)
|
assert flag_set('fflag_feat_test_org_targeting', organization=org, override_system_default=False) is False
|