935 |
935 |
|
936 |
936 |
|
937 |
937 |
def test_lazy_formdata_queryset_filter(pub, variable_test_data):
|
|
938 |
wf = Workflow.get_default_workflow()
|
|
939 |
wf.id = None
|
|
940 |
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
|
941 |
wf.backoffice_fields_formdef.fields = [
|
|
942 |
fields.StringField(id='bo1', label='1st backoffice field',
|
|
943 |
type='string', varname='backoffice_blah'),
|
|
944 |
]
|
|
945 |
wf.store()
|
|
946 |
|
938 |
947 |
lazy_formdata = variable_test_data
|
939 |
948 |
formdef = lazy_formdata._formdef
|
|
949 |
formdef.workflow = wf
|
940 |
950 |
formdef.store()
|
941 |
951 |
data_class = lazy_formdata._formdef.data_class()
|
942 |
952 |
for i in range(6):
|
943 |
953 |
formdata = data_class()
|
944 |
|
formdata.data = {'0': 'bar'}
|
|
954 |
formdata.data = {'0': 'bar', 'bo1': 'plop1'}
|
945 |
955 |
formdata.just_created()
|
946 |
956 |
formdata.store()
|
947 |
957 |
for i in range(4):
|
948 |
958 |
formdata = data_class()
|
949 |
|
formdata.data = {'0': 'foo'}
|
|
959 |
formdata.data = {'0': 'foo', 'bo1': 'plop2'}
|
950 |
960 |
formdata.just_created()
|
951 |
961 |
formdata.jump_status('finished')
|
952 |
962 |
formdata.store()
|
953 |
963 |
|
954 |
964 |
formdata = data_class()
|
955 |
|
formdata.data = {'0': 'bar'}
|
|
965 |
formdata.data = {'0': 'bar', 'bo1': 'plop1'}
|
956 |
966 |
formdata.status = 'draft'
|
957 |
967 |
formdata.store()
|
958 |
968 |
|
... | ... | |
969 |
979 |
queryset = lazy_formdata.objects.filter_by('foo_foo').apply_filter_value('X')
|
970 |
980 |
assert queryset.count == 0
|
971 |
981 |
|
|
982 |
# filter function on backoffice field
|
|
983 |
queryset = lazy_formdata.objects.filter_by('backoffice_blah').apply_filter_value('plop1')
|
|
984 |
assert queryset.count == 6
|
|
985 |
queryset = lazy_formdata.objects.filter_by('backoffice_blah').apply_filter_value('plop2')
|
|
986 |
assert queryset.count == 4
|
|
987 |
queryset = lazy_formdata.objects.filter_by('backoffice_blah').apply_filter_value('X')
|
|
988 |
assert queryset.count == 0
|
|
989 |
|
972 |
990 |
# filter using attribute name
|
973 |
991 |
queryset = lazy_formdata.objects.filter_by_foo_foo().apply_filter_value('bar')
|
974 |
992 |
assert queryset.count == 7
|