418 |
418 |
assert CardDef.get_data_source_custom_view('carddef:foo-1:view', carddef=carddef2) is None
|
419 |
419 |
assert CardDef.get_data_source_custom_view('carddef:foo-2:view', carddef=carddef2).id == custom_view2.id
|
420 |
420 |
assert CardDef.get_data_source_custom_view('carddef:foo-2:view', carddef=carddef1) is None
|
|
421 |
|
|
422 |
|
|
423 |
def test_data_source_custom_view_digest(pub):
|
|
424 |
CardDef.wipe()
|
|
425 |
carddef = CardDef()
|
|
426 |
carddef.name = 'foo'
|
|
427 |
carddef.fields = [
|
|
428 |
StringField(id='1', label='Test', type='string', varname='foo'),
|
|
429 |
]
|
|
430 |
carddef.digest_templates = {'default': '{{ form_var_foo }}'}
|
|
431 |
carddef.store()
|
|
432 |
carddef.data_class().wipe()
|
|
433 |
|
|
434 |
carddata = carddef.data_class()()
|
|
435 |
carddata.data = {'1': 'Hello'}
|
|
436 |
carddata.just_created()
|
|
437 |
carddata.store()
|
|
438 |
|
|
439 |
carddata2 = carddef.data_class()()
|
|
440 |
carddata2.data = {'1': 'Bye'}
|
|
441 |
carddata2.just_created()
|
|
442 |
carddata2.store()
|
|
443 |
|
|
444 |
custom_view = pub.custom_view_class()
|
|
445 |
custom_view.title = 'view'
|
|
446 |
custom_view.formdef = carddef
|
|
447 |
custom_view.columns = {'list': [{'id': 'id'}]}
|
|
448 |
custom_view.filters = {}
|
|
449 |
custom_view.visibility = 'datasource'
|
|
450 |
custom_view.store()
|
|
451 |
|
|
452 |
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo')] == ['Bye', 'Hello']
|
|
453 |
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo:view')] == ['Bye', 'Hello']
|
|
454 |
|
|
455 |
cards = CardDef.get_data_source_items('carddef:foo', query='hello')
|
|
456 |
assert len(cards) == 1
|
|
457 |
assert cards[0]['text'] == 'Hello'
|
|
458 |
cards = CardDef.get_data_source_items('carddef:foo:view', query='hello')
|
|
459 |
assert len(cards) == 1
|
|
460 |
assert cards[0]['text'] == 'Hello'
|
|
461 |
|
|
462 |
cards = CardDef.get_data_source_items('carddef:foo', query='foo')
|
|
463 |
assert len(cards) == 0
|
|
464 |
cards = CardDef.get_data_source_items('carddef:foo:view', query='foo')
|
|
465 |
assert len(cards) == 0
|
|
466 |
|
|
467 |
cards = CardDef.get_data_source_items('carddef:foo', get_by_text='Hello')
|
|
468 |
assert len(cards) == 1
|
|
469 |
assert cards[0]['text'] == 'Hello'
|
|
470 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_text='Hello')
|
|
471 |
assert len(cards) == 1
|
|
472 |
assert cards[0]['text'] == 'Hello'
|
|
473 |
|
|
474 |
cards = CardDef.get_data_source_items('carddef:foo', get_by_text='Hello Foo Bar')
|
|
475 |
assert len(cards) == 0
|
|
476 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_text='Hello Foo Bar')
|
|
477 |
assert len(cards) == 0
|
|
478 |
|
|
479 |
carddef.digest_templates = {
|
|
480 |
'default': '{{ form_var_foo }}',
|
|
481 |
'custom-view:view': '{{ form_var_foo }} Foo Bar',
|
|
482 |
}
|
|
483 |
carddef.store()
|
|
484 |
# rebuild digests
|
|
485 |
carddata.store()
|
|
486 |
carddata2.store()
|
|
487 |
|
|
488 |
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo')] == ['Bye', 'Hello']
|
|
489 |
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo:view')] == [
|
|
490 |
'Bye Foo Bar',
|
|
491 |
'Hello Foo Bar',
|
|
492 |
]
|
|
493 |
|
|
494 |
cards = CardDef.get_data_source_items('carddef:foo', query='hello')
|
|
495 |
assert len(cards) == 1
|
|
496 |
assert cards[0]['text'] == 'Hello'
|
|
497 |
cards = CardDef.get_data_source_items('carddef:foo:view', query='hello')
|
|
498 |
assert len(cards) == 1
|
|
499 |
assert cards[0]['text'] == 'Hello Foo Bar'
|
|
500 |
|
|
501 |
cards = CardDef.get_data_source_items('carddef:foo', query='foo')
|
|
502 |
assert len(cards) == 0
|
|
503 |
cards = CardDef.get_data_source_items('carddef:foo:view', query='foo')
|
|
504 |
assert len(cards) == 2
|
|
505 |
assert cards[0]['text'] == 'Bye Foo Bar'
|
|
506 |
assert cards[1]['text'] == 'Hello Foo Bar'
|
|
507 |
|
|
508 |
cards = CardDef.get_data_source_items('carddef:foo', get_by_text='Hello')
|
|
509 |
assert len(cards) == 1
|
|
510 |
assert cards[0]['text'] == 'Hello'
|
|
511 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_text='Hello')
|
|
512 |
assert len(cards) == 0
|
|
513 |
|
|
514 |
cards = CardDef.get_data_source_items('carddef:foo', get_by_text='Hello Foo Bar')
|
|
515 |
assert len(cards) == 0
|
|
516 |
cards = CardDef.get_data_source_items('carddef:foo:view', get_by_text='Hello Foo Bar')
|
|
517 |
assert len(cards) == 1
|
|
518 |
assert cards[0]['text'] == 'Hello Foo Bar'
|