def test_email_block(basic_blocks_page): indexer.index_page(basic_blocks_page) bound_block = IndexEntry.objects.get(block_name="email").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == "*****@*****.**" assert isinstance(bound_block.block, EmailBlock)
def test_number_block(basic_blocks_page): indexer.index_page(basic_blocks_page) bound_block = IndexEntry.objects.get(block_name="number").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == 123 assert isinstance(bound_block.block, IntegerBlock)
def test_complex_list_block(complex_list_block_page): """Ensure list blocks also work when they have complex structural blocks as the child block""" indexer.index_page(complex_list_block_page) # 1 - The list block # 2 - Items inside the list # 2x3 - Sub blocks of the PersonBlock struct # 2x2 - Sub blocks if the PersonBlock.body streamblock # = 13 blocks in total assert IndexEntry.objects.count() == 13 assert list(IndexEntry.objects.filter(block_name="name").values_list("block_value", flat=True)) == [ "Kofoworola Abeni Pratt", "Benjamin Moore", ] assert list(IndexEntry.objects.filter(block_name="heading").values_list("block_value", flat=True)) == [ "Career", "Career", ] # list blocks do not have values themselves assert IndexEntry.objects.get(block_name="people").block_value == "" # There are two items inside the list assert IndexEntry.objects.filter(block_name="people:item").count() == 2
def test_richtext_block(richtext_block_page): indexer.index_page(richtext_block_page) assert IndexEntry.objects.count() == 1 assert ( IndexEntry.objects.get(block_name="paragraph").block_value == "<p>This is a test <em>richtext</em> block</p>" )
def test_basic_blocks(basic_blocks_page): indexer.index_page(basic_blocks_page) assert IndexEntry.objects.count() == 4 assert IndexEntry.objects.get(block_name="heading").block_value == "This is a test char block" assert IndexEntry.objects.get(block_name="description").block_value == "This is a test text block" assert IndexEntry.objects.get(block_name="email").block_value == "*****@*****.**" assert IndexEntry.objects.get(block_name="number").block_value == "123"
def test_stream_block(stream_block_page): indexer.index_page(stream_block_page) bound_block = IndexEntry.objects.get(block_name="stream").get_bound_block() assert isinstance(bound_block, BoundBlock) assert "<p>This is a test paragraph block</p>" in str(bound_block.value) assert isinstance(bound_block.block, StreamBlock)
def test_list_block_items(list_block_page): indexer.index_page(list_block_page) bound_block = IndexEntry.objects.filter( block_name="numbers:item").first().get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == 1 assert isinstance(bound_block.block, IntegerBlock)
def test_char_block(basic_blocks_page): indexer.index_page(basic_blocks_page) bound_block = IndexEntry.objects.get( block_name="heading").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == "This is a test char block" assert isinstance(bound_block.block, CharBlock)
def test_list_block(list_block_page): indexer.index_page(list_block_page) bound_block = IndexEntry.objects.get( block_name="numbers").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == [1, 2, 3] assert isinstance(bound_block.block, ListBlock)
def test_text_block(basic_blocks_page): indexer.index_page(basic_blocks_page) bound_block = IndexEntry.objects.get( block_name="description").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == "This is a test text block" assert isinstance(bound_block.block, TextBlock)
def test_struct_block_items(struct_block_page): indexer.index_page(struct_block_page) bound_block = IndexEntry.objects.get(block_name="name").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == "Aneurin Bevan" assert isinstance(bound_block.block, CharBlock)
def test_image_block(image, image_block_page): indexer.index_page(image_block_page) bound_block = IndexEntry.objects.get(block_name="image").get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == image assert isinstance(bound_block.block, ImageChooserBlock)
def test_struct_block(struct_block_page): indexer.index_page(struct_block_page) bound_block = IndexEntry.objects.get(block_name="person").get_bound_block() assert isinstance(bound_block, BoundBlock) assert "Aneurin Bevan" in str(bound_block.value) assert isinstance(bound_block.block, PersonBlock)
def test_complex_list_block(complex_list_block_page): indexer.index_page(complex_list_block_page) bound_block = IndexEntry.objects.get(block_name="people").get_bound_block() assert isinstance(bound_block, BoundBlock) assert "Kofoworola Abeni Pratt" in str(bound_block.value) assert "Benjamin Moore" in str(bound_block.value) assert isinstance(bound_block.block, ListBlock)
def test_stream_block(stream_block_page): indexer.index_page(stream_block_page) # stream blocks do not have value themselves assert IndexEntry.objects.get(block_name="stream").block_value == "" # the stream block children have values instead assert IndexEntry.objects.get(block_name="heading").block_value == "This is a test heading block" assert IndexEntry.objects.get(block_name="paragraph").block_value == "<p>This is a test paragraph block</p>"
def test_stream_block_items(stream_block_page): indexer.index_page(stream_block_page) bound_block = IndexEntry.objects.get( block_name="heading").get_bound_block() assert isinstance(bound_block, BoundBlock) assert str(bound_block.value) == "This is a test heading block" assert isinstance(bound_block.block, CharBlock)
def test_richtext_block(richtext_block_page): indexer.index_page(richtext_block_page) bound_block = IndexEntry.objects.get( block_name="paragraph").get_bound_block() assert isinstance(bound_block, BoundBlock) assert isinstance(bound_block.value, RichText) assert str( bound_block.value) == "<p>This is a test <em>richtext</em> block</p>" assert isinstance(bound_block.block, RichTextBlock)
def test_struct_block(struct_block_page): indexer.index_page(struct_block_page) assert IndexEntry.objects.count() == 4 # struct blocks do not have value themselves assert IndexEntry.objects.get(block_name="person").block_value == "" # the struct block children have values instead assert IndexEntry.objects.get(block_name="name").block_value == "Aneurin Bevan" assert IndexEntry.objects.get(block_name="bio").block_value == "<p>Founder of the NHS</p>"
def test_list_block(list_block_page): indexer.index_page(list_block_page) # There should be 4 entries, 1 for the list block and 3 for the items inside the list assert IndexEntry.objects.count() == 4 # Indexes for list blocks have no value assert IndexEntry.objects.get(block_name="numbers").block_value == "" # The values are stored individually as separate items assert list(IndexEntry.objects.filter(block_name="numbers:item").values_list("block_value", flat=True)) == [ "1", "2", "3", ]
def test_complex_list_block_items(complex_list_block_page): indexer.index_page(complex_list_block_page) bound_block = IndexEntry.objects.filter( block_name="people:item").first().get_bound_block() assert isinstance(bound_block, BoundBlock) assert "Kofoworola Abeni Pratt" in str(bound_block.value) assert isinstance(bound_block.block, PersonBlock) bound_block = IndexEntry.objects.filter( block_name="name").first().get_bound_block() assert isinstance(bound_block, BoundBlock) assert bound_block.value == "Kofoworola Abeni Pratt" assert isinstance(bound_block.block, CharBlock)
def test_image_block(image, image_block_page): indexer.index_page(image_block_page) assert IndexEntry.objects.get(block_name="image").block_value == str(image.id)