Skip to content

Commit b064122

Browse files
- Added robot test Google Buckets List With Date Logic Exemplifies Use of SQLite Math Functions.
1 parent cbf0621 commit b064122

File tree

3 files changed

+280
-1
lines changed

3 files changed

+280
-1
lines changed

test/python/flask/gcp/app.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
def log_request_info():
1313
logger.info(f"Request: {request.method} {request.path} - Query: {request.args}")
1414

15-
15+
@app.route('/b', methods=['GET'])
16+
def v1_storage_buckets_list():
17+
if request.args.get('project') == 'stackql-demo':
18+
return render_template('buckets-list.json'), 200, {'Content-Type': 'application/json'}
19+
return '{"msg": "Project Not Found"}', 404, {'Content-Type': 'application/json'}
1620

1721
@app.route('/v1/projects/testing-project-three/locations/global/keyRings/testing-three/cryptoKeys', methods=['GET'])
1822
def v1_projects_testing_project_three_locations_global_keyRings_testing_three_cryptoKeys():
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
{
2+
"kind": "storage#buckets",
3+
"items": [
4+
{
5+
"kind": "storage#bucket",
6+
"selfLink": "https://www.googleapis.com/storage/v1/b/demo-app-bucket1",
7+
"id": "demo-app-bucket1",
8+
"name": "demo-app-bucket1",
9+
"projectNumber": "0000000003",
10+
"generation": "0000000000001",
11+
"metageneration": "1",
12+
"location": "US",
13+
"storageClass": "STANDARD",
14+
"etag": "CAE=",
15+
"timeCreated": "2023-02-17T05:33:56.248Z",
16+
"updated": "2023-02-17T05:33:56.248Z",
17+
"labels": {
18+
"app": "stackql-demo-okta-app"
19+
},
20+
"softDeletePolicy": {
21+
"retentionDurationSeconds": "604800",
22+
"effectiveTime": "2024-03-01T08:00:00.000Z"
23+
},
24+
"iamConfiguration": {
25+
"bucketPolicyOnly": {
26+
"enabled": true,
27+
"lockedTime": "2023-05-18T05:33:56.248Z"
28+
},
29+
"uniformBucketLevelAccess": {
30+
"enabled": true,
31+
"lockedTime": "2023-05-18T05:33:56.248Z"
32+
},
33+
"publicAccessPrevention": "enforced"
34+
},
35+
"locationType": "multi-region",
36+
"rpo": "DEFAULT"
37+
},
38+
{
39+
"kind": "storage#bucket",
40+
"selfLink": "https://www.googleapis.com/storage/v1/b/demo-app-bucket2",
41+
"id": "demo-app-bucket2",
42+
"name": "demo-app-bucket2",
43+
"projectNumber": "0000000003",
44+
"generation": "0000000000001",
45+
"metageneration": "1",
46+
"location": "US",
47+
"storageClass": "STANDARD",
48+
"etag": "CAE=",
49+
"timeCreated": "2023-02-17T05:34:26.958Z",
50+
"updated": "2023-02-17T05:34:26.958Z",
51+
"labels": {
52+
"app": "stackql-demo-okta-app"
53+
},
54+
"softDeletePolicy": {
55+
"retentionDurationSeconds": "604800",
56+
"effectiveTime": "2024-03-01T08:00:00.000Z"
57+
},
58+
"iamConfiguration": {
59+
"bucketPolicyOnly": {
60+
"enabled": true,
61+
"lockedTime": "2023-05-18T05:34:26.958Z"
62+
},
63+
"uniformBucketLevelAccess": {
64+
"enabled": true,
65+
"lockedTime": "2023-05-18T05:34:26.958Z"
66+
},
67+
"publicAccessPrevention": "enforced"
68+
},
69+
"locationType": "multi-region",
70+
"rpo": "DEFAULT"
71+
},
72+
{
73+
"kind": "storage#bucket",
74+
"selfLink": "https://www.googleapis.com/storage/v1/b/stackql-demo-bucket",
75+
"id": "stackql-demo-bucket",
76+
"name": "stackql-demo-bucket",
77+
"projectNumber": "0000000003",
78+
"generation": "0000000000001",
79+
"metageneration": "1",
80+
"location": "US",
81+
"storageClass": "STANDARD",
82+
"etag": "CAE=",
83+
"timeCreated": "2022-02-09T04:39:09.058Z",
84+
"updated": "2022-02-09T04:39:09.058Z",
85+
"softDeletePolicy": {
86+
"retentionDurationSeconds": "604800",
87+
"effectiveTime": "2024-03-01T08:00:00.000Z"
88+
},
89+
"iamConfiguration": {
90+
"bucketPolicyOnly": {
91+
"enabled": false
92+
},
93+
"uniformBucketLevelAccess": {
94+
"enabled": false
95+
},
96+
"publicAccessPrevention": "inherited"
97+
},
98+
"locationType": "multi-region",
99+
"rpo": "DEFAULT"
100+
},
101+
{
102+
"kind": "storage#bucket",
103+
"selfLink": "https://www.googleapis.com/storage/v1/b/stackql-demo-src-bucket",
104+
"id": "stackql-demo-src-bucket",
105+
"name": "stackql-demo-src-bucket",
106+
"projectNumber": "0000000003",
107+
"generation": "0000000000001",
108+
"metageneration": "3",
109+
"location": "US",
110+
"storageClass": "STANDARD",
111+
"etag": "CAM=",
112+
"timeCreated": "2022-02-08T23:23:47.208Z",
113+
"updated": "2023-03-27T03:06:27.204Z",
114+
"softDeletePolicy": {
115+
"retentionDurationSeconds": "604800",
116+
"effectiveTime": "2024-03-01T08:00:00.000Z"
117+
},
118+
"iamConfiguration": {
119+
"bucketPolicyOnly": {
120+
"enabled": false
121+
},
122+
"uniformBucketLevelAccess": {
123+
"enabled": false
124+
},
125+
"publicAccessPrevention": "inherited"
126+
},
127+
"locationType": "multi-region",
128+
"rpo": "DEFAULT"
129+
},
130+
{
131+
"kind": "storage#bucket",
132+
"selfLink": "https://www.googleapis.com/storage/v1/b/stackql-demo.appspot.com",
133+
"id": "stackql-demo.appspot.com",
134+
"name": "stackql-demo.appspot.com",
135+
"projectNumber": "0000000003",
136+
"generation": "0000000000001",
137+
"metageneration": "1",
138+
"location": "US",
139+
"storageClass": "STANDARD",
140+
"etag": "CAE=",
141+
"timeCreated": "2023-02-26T08:35:40.061Z",
142+
"updated": "2023-02-26T08:35:40.061Z",
143+
"softDeletePolicy": {
144+
"retentionDurationSeconds": "604800",
145+
"effectiveTime": "2024-03-01T08:00:00.000Z"
146+
},
147+
"iamConfiguration": {
148+
"bucketPolicyOnly": {
149+
"enabled": false
150+
},
151+
"uniformBucketLevelAccess": {
152+
"enabled": false
153+
},
154+
"publicAccessPrevention": "inherited"
155+
},
156+
"locationType": "multi-region",
157+
"rpo": "DEFAULT"
158+
},
159+
{
160+
"kind": "storage#bucket",
161+
"selfLink": "https://www.googleapis.com/storage/v1/b/stackql-encrypted-bucket-1",
162+
"id": "stackql-encrypted-bucket-1",
163+
"name": "stackql-encrypted-bucket-1",
164+
"projectNumber": "0000000003",
165+
"generation": "0000000000001",
166+
"metageneration": "1",
167+
"location": "US",
168+
"storageClass": "STANDARD",
169+
"etag": "CAE=",
170+
"timeCreated": "2023-02-28T03:18:33.043Z",
171+
"updated": "2023-02-28T03:18:33.043Z",
172+
"encryption": {
173+
"defaultKmsKeyName": "projects/stackql-demo/locations/us/keyRings/stackql-us/cryptoKeys/stackql-us-demo-key"
174+
},
175+
"softDeletePolicy": {
176+
"retentionDurationSeconds": "604800",
177+
"effectiveTime": "2024-03-01T08:00:00.000Z"
178+
},
179+
"iamConfiguration": {
180+
"bucketPolicyOnly": {
181+
"enabled": true,
182+
"lockedTime": "2023-05-29T03:18:33.043Z"
183+
},
184+
"uniformBucketLevelAccess": {
185+
"enabled": true,
186+
"lockedTime": "2023-05-29T03:18:33.043Z"
187+
},
188+
"publicAccessPrevention": "enforced"
189+
},
190+
"locationType": "multi-region",
191+
"rpo": "DEFAULT"
192+
},
193+
{
194+
"kind": "storage#bucket",
195+
"selfLink": "https://www.googleapis.com/storage/v1/b/staging.stackql-demo.appspot.com",
196+
"id": "staging.stackql-demo.appspot.com",
197+
"name": "staging.stackql-demo.appspot.com",
198+
"projectNumber": "0000000003",
199+
"generation": "0000000000001",
200+
"metageneration": "1",
201+
"location": "US",
202+
"storageClass": "STANDARD",
203+
"etag": "CAE=",
204+
"timeCreated": "2023-02-26T08:35:40.223Z",
205+
"updated": "2023-02-26T08:35:40.223Z",
206+
"lifecycle": {
207+
"rule": [
208+
{
209+
"action": {
210+
"type": "Delete"
211+
},
212+
"condition": {
213+
"age": 15
214+
}
215+
}
216+
]
217+
},
218+
"softDeletePolicy": {
219+
"retentionDurationSeconds": "604800",
220+
"effectiveTime": "2024-03-01T08:00:00.000Z"
221+
},
222+
"iamConfiguration": {
223+
"bucketPolicyOnly": {
224+
"enabled": false
225+
},
226+
"uniformBucketLevelAccess": {
227+
"enabled": false
228+
},
229+
"publicAccessPrevention": "inherited"
230+
},
231+
"locationType": "multi-region",
232+
"rpo": "DEFAULT"
233+
}
234+
]
235+
}

test/robot/functional/stackql_mocked_from_cmd_line.robot

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7425,3 +7425,43 @@ View Tuple Replacement Working As Exemplified by AWS EC2 Instances List and Deta
74257425
... stdout=${CURDIR}/tmp/View-Tuple-Replacement-Working-As-Exemplified-by-AWS-EC2-Instances-List-and-Detail.tmp
74267426
... stderr=${CURDIR}/tmp/View-Tuple-Replacement-Working-As-Exemplified-by-AWS-EC2-Instances-List-and-Detail-stderr.tmp
74277427
... repeat_count=20
7428+
7429+
Google Buckets List With Date Logic Exemplifies Use of SQLite Math Functions
7430+
Pass Execution If "${SQL_BACKEND}" == "postgres_tcp" This is a valid case where the test is targetted at SQLite only
7431+
${inputStr} = Catenate
7432+
... SELECT name, timeCreated, floor(julianday('now')-julianday(timeCreated)) as days_since_ceiling
7433+
... FROM google.storage.buckets
7434+
... WHERE project = 'stackql-demo'
7435+
... order by name desc
7436+
... ;
7437+
${outputStr} = Catenate SEPARATOR=\n
7438+
... |----------------------------------|--------------------------|--------------------|
7439+
... |${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}name${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}timeCreated${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}days_since_ceiling${SPACE}|
7440+
... |----------------------------------|--------------------------|--------------------|
7441+
... |${SPACE}staging.stackql-demo.appspot.com${SPACE}|${SPACE}2023-02-26T08:35:40.223Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}700${SPACE}|
7442+
... |----------------------------------|--------------------------|--------------------|
7443+
... |${SPACE}stackql-encrypted-bucket-1${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2023-02-28T03:18:33.043Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}699${SPACE}|
7444+
... |----------------------------------|--------------------------|--------------------|
7445+
... |${SPACE}stackql-demo.appspot.com${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2023-02-26T08:35:40.061Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}700${SPACE}|
7446+
... |----------------------------------|--------------------------|--------------------|
7447+
... |${SPACE}stackql-demo-src-bucket${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2022-02-08T23:23:47.208Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}1083${SPACE}|
7448+
... |----------------------------------|--------------------------|--------------------|
7449+
... |${SPACE}stackql-demo-bucket${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2022-02-09T04:39:09.058Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}1083${SPACE}|
7450+
... |----------------------------------|--------------------------|--------------------|
7451+
... |${SPACE}demo-app-bucket2${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2023-02-17T05:34:26.958Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}710${SPACE}|
7452+
... |----------------------------------|--------------------------|--------------------|
7453+
... |${SPACE}demo-app-bucket1${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}2023-02-17T05:33:56.248Z${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}710${SPACE}|
7454+
... |----------------------------------|--------------------------|--------------------|
7455+
Should Stackql Exec Inline Equal Both Streams
7456+
... ${STACKQL_EXE}
7457+
... ${OKTA_SECRET_STR}
7458+
... ${GITHUB_SECRET_STR}
7459+
... ${K8S_SECRET_STR}
7460+
... ${REGISTRY_NO_VERIFY_CFG_STR}
7461+
... ${AUTH_CFG_STR}
7462+
... ${SQL_BACKEND_CFG_STR_CANONICAL}
7463+
... ${inputStr}
7464+
... ${outputStr}
7465+
... ${EMPTY}
7466+
... stdout=${CURDIR}/tmp/Google-Buckets-List-With-Date-Logic-Exemplifies-Use-of-SQLite-Math-Functions.tmp
7467+
... stderr=${CURDIR}/tmp/Google-Buckets-List-With-Date-Logic-Exemplifies-Use-of-SQLite-Math-Functions-stderr.tmp

0 commit comments

Comments
 (0)