417 |
417 |
assert CardDef.get_data_source_custom_view('carddef:foo-1:view', carddef=carddef2) is None
|
418 |
418 |
assert CardDef.get_data_source_custom_view('carddef:foo-2:view', carddef=carddef2).id == custom_view2.id
|
419 |
419 |
assert CardDef.get_data_source_custom_view('carddef:foo-2:view', carddef=carddef1) is None
|
|
420 |
|
|
421 |
|
|
422 |
def test_data_source_custom_view_data_access(pub):
|
|
423 |
CardDef.wipe()
|
|
424 |
carddef = CardDef()
|
|
425 |
carddef.name = 'foo'
|
|
426 |
carddef.fields = [
|
|
427 |
StringField(id='1', label='Test', type='string', varname='foo'),
|
|
428 |
StringField(id='2', label='Test2', type='string', varname='foo2'),
|
|
429 |
]
|
|
430 |
carddef.digest_template = '{{ form_var_foo }}'
|
|
431 |
carddef.store()
|
|
432 |
carddef.data_class().wipe()
|
|
433 |
|
|
434 |
pub.custom_view_class.wipe()
|
|
435 |
|
|
436 |
custom_view = pub.custom_view_class()
|
|
437 |
custom_view.title = 'view'
|
|
438 |
custom_view.formdef = carddef
|
|
439 |
custom_view.columns = {'list': [{'id': 'id'}]}
|
|
440 |
custom_view.filters = {'filter-1': 'on', 'filter-1-value': 'xxx'}
|
|
441 |
|
|
442 |
custom_view.visibility = 'datasource'
|
|
443 |
custom_view.store()
|
|
444 |
|
|
445 |
carddata = carddef.data_class()()
|
|
446 |
carddata.data = {'1': 'hello world'}
|
|
447 |
carddata.just_created()
|
|
448 |
carddata.store()
|
|
449 |
|
|
450 |
# no filter, there's a card
|
|
451 |
cards = CardDef.get_data_source_items('carddef:foo')
|
|
452 |
assert len(cards) == 1
|
|
453 |
cards = CardDef.get_data_source_items('carddef:foo', get_by_text='hello world')
|
|
454 |
assert len(cards) == 1
|
|
455 |
|
|
456 |
# nothing returned as the filter doesn't match anything
|
|
457 |
cards = CardDef.get_data_source_items('carddef:foo:view')
|
|
458 |
assert len(cards) == 0
|
|
459 |
|
|
460 |
# filter is ignored for id lookup
|
|
461 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_id=carddata.id)
|
|
462 |
assert len(cards) == 1
|
|
463 |
assert cards[0]['text'] == 'hello world'
|
|
464 |
|
|
465 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_id=carddata.get_display_id())
|
|
466 |
assert len(cards) == 1
|
|
467 |
assert cards[0]['text'] == 'hello world'
|
|
468 |
|
|
469 |
# filter is not ignored for text lookup
|
|
470 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_text='hello world')
|
|
471 |
assert len(cards) == 0
|