1
- from unittest import TestCase
2
- from unittest .mock import call , patch
3
- from requests import HTTPError
1
+ from unittest .mock import patch
4
2
5
3
from exceptions import NotFoundError
6
- from metabase .metabase import Metabase
7
- from metabase .resource import CreateResource , DeleteResource , GetResource , ListResource , Resource , UpdateResource
8
- from missing import MISSING
4
+ from requests import HTTPError
9
5
6
+ from metabase .metabase import Metabase
7
+ from metabase .missing import MISSING
8
+ from metabase .resource import (
9
+ CreateResource ,
10
+ DeleteResource ,
11
+ GetResource ,
12
+ ListResource ,
13
+ Resource ,
14
+ UpdateResource ,
15
+ )
10
16
from tests .helpers import IntegrationTestCase
11
17
12
18
@@ -40,6 +46,7 @@ def test_connection(self):
40
46
class ListResourceTests (IntegrationTestCase ):
41
47
def test_list (self ):
42
48
"""Ensure ListResource.list() returns a list of objects from Metabase, if any."""
49
+
43
50
class Setting (ListResource ):
44
51
ENDPOINT = "/api/setting"
45
52
PRIMARY_KEY = None
@@ -52,6 +59,7 @@ class Setting(ListResource):
52
59
class GetResourceTests (IntegrationTestCase ):
53
60
def test_get (self ):
54
61
"""Ensure GetResource.get() returns an instance of an object, by ID, if any."""
62
+
55
63
class User (GetResource ):
56
64
ENDPOINT = "/api/user"
57
65
@@ -60,6 +68,7 @@ class User(GetResource):
60
68
61
69
def test_get_404 (self ):
62
70
"""Ensure GetResource.get() raises NotFoundError if the object does not exist."""
71
+
63
72
class User (GetResource ):
64
73
ENDPOINT = "/api/user"
65
74
@@ -70,17 +79,19 @@ class User(GetResource):
70
79
class CreateResourceTests (IntegrationTestCase ):
71
80
def test_create (self ):
72
81
"""Ensure CreateResource.create() creates an object in Metabase and returns an instance."""
82
+
73
83
class Collection (CreateResource , GetResource ):
74
84
ENDPOINT = "/api/collection"
75
85
76
86
collection = Collection .create (name = "My Collection" , color = "#123456" )
77
87
self .assertIsInstance (collection , Collection )
78
- self .assertIsNotNone (Collection .get (collection .id )) # metabase was updated
88
+ self .assertIsNotNone (Collection .get (collection .id )) # metabase was updated
79
89
80
90
81
91
class UpdateResourceTests (IntegrationTestCase ):
82
92
def test_update (self ):
83
93
"""Ensure UpdateResource.update() updates an existing object in Metabase."""
94
+
84
95
class Collection (CreateResource , GetResource , UpdateResource ):
85
96
ENDPOINT = "/api/collection"
86
97
@@ -97,6 +108,7 @@ class Collection(CreateResource, GetResource, UpdateResource):
97
108
98
109
def test_update_missing (self ):
99
110
"""Ensure UpdateResource.update() ignores arguments equal to MISSING."""
111
+
100
112
class Collection (UpdateResource ):
101
113
ENDPOINT = "/api/collection"
102
114
@@ -114,12 +126,15 @@ class Collection(UpdateResource):
114
126
pass
115
127
116
128
self .assertTrue (mock .called )
117
- self .assertIsNone (mock .assert_called_with ("/api/collection/1" , json = expected ))
129
+ self .assertIsNone (
130
+ mock .assert_called_with ("/api/collection/1" , json = expected )
131
+ )
118
132
119
133
120
134
class DeleteResourceTests (IntegrationTestCase ):
121
135
def test_delete (self ):
122
136
"""Ensure DeleteResource.delete() deletes an existing object in Metabase."""
137
+
123
138
class Group (CreateResource , GetResource , DeleteResource ):
124
139
ENDPOINT = "/api/permissions/group"
125
140
PRIMARY_KEY = "id"
0 commit comments