def test_rich_text_field_with_embeds_in_lists(self): client = Client( 'jd7yc4wnatx3', '6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248', gzip_encoded=False ) entry = client.entry('6NGLswCREsGA28kGouScyY') # Hyperlink data is conserved self.assertEqual(entry.body['content'][0], { 'data': {}, 'content': [ {'marks': [], 'value': 'A link to ', 'nodeType': 'text', 'nodeClass': 'text'}, { 'data': {'uri': 'https://google.com'}, 'content': [{'marks': [], 'value': 'google', 'nodeType': 'text', 'nodeClass': 'text'}], 'nodeType': 'hyperlink', 'nodeClass': 'inline' }, {'marks': [], 'value': '', 'nodeType': 'text', 'nodeClass': 'text'} ], 'nodeType': 'paragraph', 'nodeClass': 'block' }) # Unordered lists and ordered lists can contain embedded entries self.assertEqual(entry.body['content'][3]['nodeType'], 'unordered-list') self.assertEqual(str(entry.body['content'][3]['content'][2]['content'][0]['data']['target']), "<Entry[embedded] id='49rofLvvxCOiIMIi6mk8ai'>") self.assertEqual(entry.body['content'][4]['nodeType'], 'ordered-list') self.assertEqual(str(entry.body['content'][4]['content'][2]['content'][0]['data']['target']), "<Entry[embedded] id='5ZF9Q4K6iWSYIU2OUs0UaQ'>")
def test_unresolvable_entries_dont_get_included(self): client = Client( '011npgaszg5o', '42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd') entry = client.entry('1HR1QvURo4MoSqO0eqmUeO') self.assertEqual(len(entry.modules), 2)
def test_circular_references_default_depth(self): client = Client('rk19fq93y3vw', '821aa502a7ce820e46adb30fa6942889619aac4342a7021cfe15197c52a593cc', content_type_cache=True) a = client.entry('6kdfS7uMs8owuEIoSaOcQk') self.assertEqual(str(a), "<Entry[a] id='6kdfS7uMs8owuEIoSaOcQk'>") self.assertEqual(str(a.b), "<Entry[b] id='7oADpDPuneEAsWUiO2CmEo'>") self.assertEqual(str(a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a), "<Entry[a] id='6kdfS7uMs8owuEIoSaOcQk'>") self.assertEqual(str(a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b.a.b), "<Link[Entry] id='7oADpDPuneEAsWUiO2CmEo'>")
def test_entry_incoming_references_with_query(self): client = Client('cfexampleapi', 'b4c0n73n7fu1', content_type_cache=False) entry = client.entry('nyancat') entries = entry.incoming_references(client, {'content_type': 'cat', 'select': ['fields.name']}) self.assertEqual(len(entries), 1) self.assertEqual(str(entries[0]), "<Entry[cat] id='happycat'>") self.assertEqual(entries[0].fields(), {'name': 'Happy Cat'})
def test_client_entry(self): client = Client('cfexampleapi', 'b4c0n73n7fu1', content_type_cache=False) entry = client.entry('nyancat') self.assertEqual(str(entry), "<Entry[cat] id='nyancat'>") self.assertEqual(str(entry.best_friend), "<Entry[cat] id='happycat'>")
def test_entry_incoming_references(self): client = Client('cfexampleapi', 'b4c0n73n7fu1', content_type_cache=False) entry = client.entry('nyancat') entries = entry.incoming_references(client) self.assertEqual(len(entries), 1) self.assertEqual(str(entries[0]), "<Entry[cat] id='happycat'>")
def test_rich_text_fields_should_not_get_hydrated_twice(self): client = Client( 'fds721b88p6b', '45ba81cc69423fcd2e3f0a4779de29481bb5c11495bc7e14649a996cf984e98e', gzip_encoded=False) entry = client.entry('1tBAu0wP9qAQEg6qCqMics') # Not failing is already a success self.assertEqual(str(entry.children[0]), str(entry.children[1])) self.assertEqual(str(entry.children[0].body), str(entry.children[1].body))
def test_structured_text_field(self): client = Client( 'jd7yc4wnatx3', '6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248') entry = client.entry('4BupPSmi4M02m0U48AQCSM') expected_entry_occurrances = 2 embedded_entry_index = 1 for content in entry.body['content']: if content['nodeType'] == 'embedded-entry-block': self.assertTrue(isinstance(content['data'], Entry)) self.assertEqual(content['data'].body, 'Embedded {0}'.format(embedded_entry_index)) expected_entry_occurrances -= 1 embedded_entry_index += 1 self.assertEqual(expected_entry_occurrances, 0)