@@ -404,6 +404,10 @@ def test_labels_setter_bad_value(self):
404
404
with self .assertRaises (ValueError ):
405
405
dataset .labels = None
406
406
407
+ def test_labels_getter_missing_value (self ):
408
+ dataset = self ._make_one (self .DS_REF )
409
+ self .assertEqual (dataset .labels , {})
410
+
407
411
def test_from_api_repr_missing_identity (self ):
408
412
self ._setUpConstants ()
409
413
RESOURCE = {}
@@ -460,3 +464,96 @@ def test_table(self):
460
464
self .assertEqual (table .table_id , 'table_id' )
461
465
self .assertEqual (table .dataset_id , self .DS_ID )
462
466
self .assertEqual (table .project , self .PROJECT )
467
+
468
+
469
+ class TestDatasetListItem (unittest .TestCase ):
470
+
471
+ @staticmethod
472
+ def _get_target_class ():
473
+ from google .cloud .bigquery .dataset import DatasetListItem
474
+
475
+ return DatasetListItem
476
+
477
+ def _make_one (self , * args , ** kw ):
478
+ return self ._get_target_class ()(* args , ** kw )
479
+
480
+ def test_ctor (self ):
481
+ project = 'test-project'
482
+ dataset_id = 'test_dataset'
483
+ resource = {
484
+ 'kind' : 'bigquery#dataset' ,
485
+ 'id' : '{}:{}' .format (project , dataset_id ),
486
+ 'datasetReference' : {
487
+ 'projectId' : project ,
488
+ 'datasetId' : dataset_id ,
489
+ },
490
+ 'friendlyName' : 'Data of the Test' ,
491
+ 'labels' : {
492
+ 'some-stuff' : 'this-is-a-label' ,
493
+ },
494
+ }
495
+
496
+ dataset = self ._make_one (resource )
497
+ self .assertEqual (dataset .project , project )
498
+ self .assertEqual (dataset .dataset_id , dataset_id )
499
+ self .assertEqual (
500
+ dataset .full_dataset_id ,
501
+ '{}:{}' .format (project , dataset_id ))
502
+ self .assertEqual (dataset .reference .project , project )
503
+ self .assertEqual (dataset .reference .dataset_id , dataset_id )
504
+ self .assertEqual (dataset .friendly_name , 'Data of the Test' )
505
+ self .assertEqual (dataset .labels ['some-stuff' ], 'this-is-a-label' )
506
+
507
+ def test_ctor_missing_properties (self ):
508
+ resource = {
509
+ 'datasetReference' : {
510
+ 'projectId' : 'testproject' ,
511
+ 'datasetId' : 'testdataset' ,
512
+ },
513
+ }
514
+ dataset = self ._make_one (resource )
515
+ self .assertEqual (dataset .project , 'testproject' )
516
+ self .assertEqual (dataset .dataset_id , 'testdataset' )
517
+ self .assertIsNone (dataset .full_dataset_id )
518
+ self .assertIsNone (dataset .friendly_name )
519
+ self .assertEqual (dataset .labels , {})
520
+
521
+ def test_ctor_wo_project (self ):
522
+ resource = {
523
+ 'datasetReference' : {
524
+ 'datasetId' : 'testdataset' ,
525
+ },
526
+ }
527
+ with self .assertRaises (ValueError ):
528
+ self ._make_one (resource )
529
+
530
+ def test_ctor_wo_dataset (self ):
531
+ resource = {
532
+ 'datasetReference' : {
533
+ 'projectId' : 'testproject' ,
534
+ },
535
+ }
536
+ with self .assertRaises (ValueError ):
537
+ self ._make_one (resource )
538
+
539
+ def test_ctor_wo_reference (self ):
540
+ with self .assertRaises (ValueError ):
541
+ self ._make_one ({})
542
+
543
+ def test_table (self ):
544
+ from google .cloud .bigquery .table import TableReference
545
+
546
+ project = 'test-project'
547
+ dataset_id = 'test_dataset'
548
+ resource = {
549
+ 'datasetReference' : {
550
+ 'projectId' : project ,
551
+ 'datasetId' : dataset_id ,
552
+ },
553
+ }
554
+ dataset = self ._make_one (resource )
555
+ table = dataset .table ('table_id' )
556
+ self .assertIsInstance (table , TableReference )
557
+ self .assertEqual (table .table_id , 'table_id' )
558
+ self .assertEqual (table .dataset_id , dataset_id )
559
+ self .assertEqual (table .project , project )
0 commit comments