def test_iterate_view(self) -> None: """Test iterating a view.""" base = airtable.Airtable('base', '') base.create('table', {'number': 3}) base.create('table', {'number': 4}) airtablemock.create_view('base', 'table', 'my-view', 'number < 4') records = base.iterate('table', view='my-view') self.assertEqual([3], [record['fields']['number'] for record in records])
def test_unknown_view(self) -> None: """Try accessing an unknown view, while views are enabled.""" base = airtable.Airtable('base', '') base.create('table', {'number': 1, 'filter': 'no'}) airtablemock.create_view('base', 'table', 'existing view', 'filter = "yes"') match_exception = '422 .* Unprocessable Entity .* {}'.format( re.escape('{}base/table?view=non%20existing%20view'.format( airtable.API_URL % airtable.API_VERSION))) with self.assertRaisesRegex(exceptions.HTTPError, match_exception): base.get('table', view='non existing view')
def test_view(self) -> None: """Test calling records of a view.""" base = airtable.Airtable('base', '') base.create('table', {'number': 1, 'filter': 'no'}) base.create('table', {'number': 2, 'filter': 'yes'}) base.create('table', {'number': 3, 'filter': 'yes'}) airtablemock.create_view('base', 'table', 'filtered view', 'filter = "yes"') records = base.get('table', view='filtered view')['records'] self.assertEqual([2, 3], [record['fields']['number'] for record in records])
def setUp(self) -> None: super().setUp() airtablemock.create_empty_table('appkEc8N0Bw4Uok43', 'translations') airtablemock.create_empty_table('appXmyc7yYj0pOcae', 'skills_for_future') airtablemock.create_view('appXmyc7yYj0pOcae', 'skills_for_future', 'viwfJ3L3qKPMVV2wp', 'unused != 3') for base_id, table, view in _TABLES_TO_MOCK: try: airtablemock.create_empty_table(base_id, table) except ValueError: # It's OK if the table exist already. pass if view: airtablemock.create_view(base_id, table, view, 'unused != 3')
def test_creating_view_twice(self) -> None: """Test creating a view twice.""" airtablemock.create_empty_table('base', 'table') airtablemock.create_view('base', 'table', 'filtered view', 'filter = "yes"') airtablemock.create_view('base', 'table', 'other view', 'filter = "yes"') with self.assertRaises(ValueError): airtablemock.create_view('base', 'table', 'filtered view', 'filter = "yes"')
def test_creating_view_before_table(self) -> None: """Test creating a view before creating a table.""" with self.assertRaises(ValueError): airtablemock.create_view('base', 'table', 'filtered view', 'filter = "yes"')