Projet

Général

Profil

0001-datasources-use-extended_data_source-in-DataSourcesS.patch

Benjamin Dauvergne, 25 novembre 2021 15:48

Télécharger (3,66 ko)

Voir les différences:

Subject: [PATCH] datasources: use extended_data_source in
 DataSourcesSubstitutionProxy (#58990)

 tests/test_datasource_users.py | 13 +++++++++++++
 wcs/data_sources.py            |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
tests/test_datasource_users.py
3 3
from wcs import data_sources
4 4
from wcs.data_sources import NamedDataSource
5 5
from wcs.qommon.http_request import HTTPRequest
6
from wcs.qommon.template import Template
6 7

  
7 8
from .utilities import clean_temporary_pub, create_temporary_pub
8 9

  
......
33 34
    datasource.data_source = {'type': 'wcs:users'}
34 35
    datasource.store()
35 36

  
37
    context = pub.substitutions.get_context_variables(mode='lazy')
38
    tmpl = Template(
39
        '{% for user in data_source.foo %}{{ user.text }}{% if not forloop.last %}, {% endif %}{% endfor %}'
40
    )
41

  
36 42
    assert data_sources.get_items({'type': datasource.slug}) == []
37 43
    assert data_sources.get_items(datasource.extended_data_source) == []
38 44
    assert data_sources.get_structured_items({'type': datasource.slug}) == []
39 45
    assert data_sources.get_structured_items(datasource.extended_data_source) == []
46
    assert tmpl.render(context) == ''
40 47

  
41 48
    users = []
42 49
    for i in range(2):
......
61 68
        {'id': 1, 'text': 'John Doe 0'},
62 69
        {'id': 2, 'text': 'John Doe 1'},
63 70
    ]
71
    assert tmpl.render(context) == 'John Doe 0, John Doe 1'
64 72

  
65 73
    datasource.users_included_roles = [role1.id]
66 74
    datasource.store()
......
72 80
        {'id': 1, 'text': 'John Doe 0'},
73 81
        {'id': 2, 'text': 'John Doe 1'},
74 82
    ]
83
    assert tmpl.render(context) == 'John Doe 0, John Doe 1'
75 84

  
76 85
    datasource.users_included_roles = [role1.id, role2.id]
77 86
    datasource.store()
78 87
    assert data_sources.get_structured_items({'type': datasource.slug}) == []
79 88
    assert data_sources.get_structured_items(datasource.extended_data_source) == []
89
    assert tmpl.render(context) == ''
80 90

  
81 91
    users[0].roles = [role1.id, role2.id]
82 92
    users[0].store()
......
84 94
    assert data_sources.get_structured_items(datasource.extended_data_source) == [
85 95
        {'id': 1, 'text': 'John Doe 0'}
86 96
    ]
97
    assert tmpl.render(context) == 'John Doe 0'
87 98

  
88 99
    users[0].roles = [role2.id]
89 100
    users[0].store()
......
94 105
    assert data_sources.get_structured_items(datasource.extended_data_source) == [
95 106
        {'id': 1, 'text': 'John Doe 0'}
96 107
    ]
108
    assert tmpl.render(context) == 'John Doe 0'
97 109

  
98 110
    datasource.users_excluded_roles = [role1.id, role2.id]
99 111
    datasource.store()
100 112
    assert data_sources.get_structured_items({'type': datasource.slug}) == []
101 113
    assert data_sources.get_structured_items(datasource.extended_data_source) == []
114
    assert tmpl.render(context) == ''
wcs/data_sources.py
856 856

  
857 857
class DataSourcesSubstitutionProxy:
858 858
    def __getattr__(self, attr):
859
        return get_structured_items(NamedDataSource.get_by_slug(attr).data_source)
859
        return get_structured_items(NamedDataSource.get_by_slug(attr).extended_data_source)
860 860

  
861 861
    def inspect_keys(self):
862 862
        return []
863
-