Bin
2025-12-17 1d710f844b65d9bfdf986a71a3b924cd70598a41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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