Skip to content

Commit 8c7a232

Browse files
committed
Merge pull request #1528 from dhermes/happybase-col-fam-sys-test
Adding system tests HappyBase column family methods.
2 parents 42fc722 + f50410a commit 8c7a232

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

system_tests/bigtable.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from gcloud import _helpers
2121
from gcloud.bigtable.client import Client
22+
from gcloud.bigtable.column_family import MaxVersionsGCRule
2223
from gcloud.environment_vars import TESTS_PROJECT
2324

2425

@@ -27,6 +28,8 @@
2728
NOW_MILLIS = int(1000 * time.time())
2829
CLUSTER_ID = 'gcloud-python-%d' % (NOW_MILLIS,)
2930
TABLE_ID = 'gcloud-python-test-table'
31+
COLUMN_FAMILY_ID1 = u'col-fam-id1'
32+
COLUMN_FAMILY_ID2 = u'col-fam-id2'
3033
EXISTING_CLUSTERS = []
3134
EXPECTED_ZONES = (
3235
'asia-east1-b',
@@ -227,3 +230,65 @@ def test_rename_table(self):
227230
self.assertEqual(
228231
exc_caught.details,
229232
'BigtableTableService.RenameTable is not yet implemented')
233+
234+
def test_create_column_family(self):
235+
temp_table_id = 'foo-bar-baz-table'
236+
temp_table = Config.CLUSTER.table(temp_table_id)
237+
temp_table.create()
238+
self.tables_to_delete.append(temp_table)
239+
240+
self.assertEqual(temp_table.list_column_families(), {})
241+
gc_rule = MaxVersionsGCRule(1)
242+
column_family = temp_table.column_family(COLUMN_FAMILY_ID1,
243+
gc_rule=gc_rule)
244+
column_family.create()
245+
246+
col_fams = temp_table.list_column_families()
247+
248+
self.assertEqual(len(col_fams), 1)
249+
retrieved_col_fam = col_fams[COLUMN_FAMILY_ID1]
250+
self.assertTrue(retrieved_col_fam._table is column_family._table)
251+
self.assertEqual(retrieved_col_fam.column_family_id,
252+
column_family.column_family_id)
253+
self.assertEqual(retrieved_col_fam.gc_rule, gc_rule)
254+
255+
def test_update_column_family(self):
256+
temp_table_id = 'foo-bar-baz-table'
257+
temp_table = Config.CLUSTER.table(temp_table_id)
258+
temp_table.create()
259+
self.tables_to_delete.append(temp_table)
260+
261+
gc_rule = MaxVersionsGCRule(1)
262+
column_family = temp_table.column_family(COLUMN_FAMILY_ID1,
263+
gc_rule=gc_rule)
264+
column_family.create()
265+
266+
# Check that our created table is as expected.
267+
col_fams = temp_table.list_column_families()
268+
self.assertEqual(col_fams, {COLUMN_FAMILY_ID1: column_family})
269+
270+
# Update the column family's GC rule and then try to update.
271+
column_family.gc_rule = None
272+
column_family.update()
273+
274+
# Check that the update has propagated.
275+
col_fams = temp_table.list_column_families()
276+
self.assertEqual(col_fams[COLUMN_FAMILY_ID1].gc_rule, None)
277+
278+
def test_delete_column_family(self):
279+
temp_table_id = 'foo-bar-baz-table'
280+
temp_table = Config.CLUSTER.table(temp_table_id)
281+
temp_table.create()
282+
self.tables_to_delete.append(temp_table)
283+
284+
self.assertEqual(temp_table.list_column_families(), {})
285+
column_family = temp_table.column_family(COLUMN_FAMILY_ID1)
286+
column_family.create()
287+
288+
# Make sure the family is there before deleting it.
289+
col_fams = temp_table.list_column_families()
290+
self.assertEqual(list(col_fams.keys()), [COLUMN_FAMILY_ID1])
291+
292+
column_family.delete()
293+
# Make sure we have successfully deleted it.
294+
self.assertEqual(temp_table.list_column_families(), {})

0 commit comments

Comments
 (0)