def test_empty_bookmark(self): empty_bookmark = {'bookmarks': {}} # Case with no value to fall back on self.assertIsNone(bookmarks.get_offset(empty_bookmark, 'some_stream')) # Case with a given default self.assertEqual( bookmarks.get_offset(empty_bookmark, 'some_stream', 'default_value'), 'default_value')
def test_non_empty_state(self): stream_id_1 = 'customers' bookmark_key_1 = 'datetime' bookmark_val_1 = 123456789 offset_val = 'fizzy water' non_empty_state = { 'bookmarks': { stream_id_1: { bookmark_key_1: bookmark_val_1, 'offset': offset_val } } } # # Cases with no value to fall back on # # Bad stream self.assertIsNone(bookmarks.get_offset(non_empty_state, 'some_stream')) # Good stream self.assertEqual(bookmarks.get_offset(non_empty_state, stream_id_1), offset_val) # # Case with a given default # # Bad stream self.assertEqual( bookmarks.get_offset(non_empty_state, 'some_stream', 'default_value'), 'default_value') # Good stream self.assertEqual( bookmarks.get_offset(non_empty_state, stream_id_1, 'default_value'), offset_val)
def get_offset(self, path): off = bks_.get_offset(self.state, path[0]) return (off or {}).get(path[1])