import unittest from unittest import mock from delphi_api.errors import BigTableError class TestBigTableModel(unittest.TestCase): def setUp(self) -> None: pass def tearDown(self) -> None: pass @staticmethod def _get_target_class(): from delphi_api.bigtable import BigTableModel return BigTableModel def _make_one(self, *args, **kwargs): return self._get_target_class()(*args, **kwargs) def test__check_table_exists_raises(self): with mock.patch('google.cloud.bigtable.table.Table.exists', return_value=False): model = self._make_one() self.assertRaises(BigTableError, model._check_table_exists) self.assertRaises(BigTableError, model.batch_get, item_keys=[]) self.assertRaises(BigTableError, model.save) def test_get_row_key(self): sep = '|' with mock.patch('delphi_api.bigtable.models.SEP', sep): model = self._make_one() self.assertEqual(b'a', model.get_row_key(['a'])) self.assertEqual(b'a|b', model.get_row_key(['a', 'b'])) self.assertEqual(b'a|b|c', model.get_row_key(['a', 'b', 'c']))