Skip to content

Commit e1a0b9c

Browse files
committed
service account: functional test
1 parent 3978590 commit e1a0b9c

11 files changed

Lines changed: 158 additions & 2 deletions

File tree

.github/workflows/push.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ env:
1111
KBC_DEVELOPERPORTAL_PASSWORD: ${{ secrets.KBC_DEVELOPERPORTAL_PASSWORD }}
1212
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
1313
REFRESH_TOKEN: ${{ secrets.REFRESH_TOKEN }}
14+
SERVICE_ACCOUNT_JSON: ${{ secrets.SERVICE_ACCOUNT_JSON }}
1415
KBC_URL: "https://connection.keboola.com"
1516
KBC_TOKEN: ${{ secrets.KBC_TOKEN }}
1617
KBC_COMPONENTID: "keboola.ex-google-analytics-v4"
@@ -26,7 +27,7 @@ jobs:
2627
- name: Build image and run tests
2728
run: |
2829
docker build -t $APP_IMAGE .
29-
docker run -e KBC_DATA_TYPE_SUPPORT=none -e CLIENT_ID -e CLIENT_SECRET -e ACCESS_TOKEN -e REFRESH_TOKEN -e VIEW_ID -e KBC_URL -e KBC_TOKEN -e KBC_COMPONENTID $APP_IMAGE composer ci
30+
docker run -e KBC_DATA_TYPE_SUPPORT=none -e CLIENT_ID -e CLIENT_SECRET -e ACCESS_TOKEN -e REFRESH_TOKEN -e VIEW_ID -e KBC_URL -e KBC_TOKEN -e KBC_COMPONENTID -e SERVICE_ACCOUNT_JSON $APP_IMAGE composer ci
3031
- name: Push image to ECR
3132
run: |
3233
docker pull quay.io/keboola/developer-portal-cli-v2:latest

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ services:
99
- CLIENT_SECRET
1010
- ACCESS_TOKEN
1111
- REFRESH_TOKEN
12+
- SERVICE_ACCOUNT_JSON
1213
- VIEW_ID
1314
- KBC_URL
1415
- KBC_TOKEN

src/Component.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,10 @@ private function getGoogleRestApi(): RestApi
300300
{
301301
$serviceAccount = $this->getConfig()->getServiceAccount();
302302
if ($serviceAccount) {
303-
$this->getLogger()->info('Login with service account', $serviceAccount['client_email']);
303+
$this->getLogger()->info(sprintf(
304+
'Login with service account: "%s"',
305+
$serviceAccount['client_email'],
306+
));
304307
$client = RestApi::createWithServiceAccount(
305308
$serviceAccount,
306309
[

tests/functional/DatadirTest.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,39 @@ public function __construct(?string $name = null, array $data = [], string $data
2222

2323
parent::__construct($name, $data, $dataName);
2424
}
25+
26+
/**
27+
* @dataProvider provideDatadirSpecifications
28+
*/
29+
public function testDatadir(DatadirTestSpecificationInterface $specification): void
30+
{
31+
$tempDatadir = $this->getTempDatadir($specification);
32+
33+
/**
34+
* @var array{
35+
* "parameters": ?array{
36+
* "service_account": string,
37+
* }
38+
* } $config
39+
*/
40+
$config = json_decode(
41+
(string) file_get_contents($tempDatadir->getTmpFolder() . '/config.json'),
42+
true,
43+
);
44+
if (array_key_exists('service_account', $config['parameters'] ?? [])) {
45+
/**
46+
* @var array{
47+
* "private_key": string,
48+
* } $serviceAccount
49+
*/
50+
$serviceAccount = json_decode($config['parameters']['service_account'], true);
51+
$serviceAccount['#private_key'] = $serviceAccount['private_key'];
52+
unset($serviceAccount['private_key']);
53+
$config['parameters']['service_account'] = $serviceAccount;
54+
}
55+
file_put_contents($tempDatadir->getTmpFolder() . '/config.json', json_encode($config));
56+
$process = $this->runScript($tempDatadir->getTmpFolder());
57+
58+
$this->assertMatchesSpecification($specification, $process, $tempDatadir->getTmpFolder());
59+
}
2560
}

tests/functional/service-account/expected/data/out/files/.gitkeep

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"properties/255885884","users","accounts/185283969","Keboola"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"destination":"in.c-ex-google-analytics-cfg.properties","incremental":true,"columns":["propertyKey","propertyName","accountKey","accountName"],"primary_key":["propertyKey"],"column_metadata":{"propertyKey":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"propertyName":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"accountKey":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"accountName":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}]}}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
"72194b333e93bc548ef559a2ae554d7a6ee50947","255885884","2023-05-16","2","3","0"
2+
"6a0c94663242fa1b581c0f9d9f61a6460a1c3a81","255885884","2023-03-07","2","2","0"
3+
"4a1cf07a609a881015969ed288e8d50a8010bedd","255885884","2023-03-16","4","2","0"
4+
"4025b8904b24bd6f7a71ce5b9f2805c46b739788","255885884","2023-03-17","5","2","0"
5+
"be35d9bfa1a2286d60aba94c5dfd280bd99adbd4","255885884","2023-03-20","1","2","0"
6+
"79e0eebf5e6d9e439e36c463a503cc77c940d986","255885884","2023-03-27","1","2","0"
7+
"dc1edce9a87d775bf3b4743244729a9d996c5168","255885884","2023-04-01","6","2","0"
8+
"6aa5858739621460c312fc61bafc36182740241e","255885884","2023-04-03","1","2","0"
9+
"20915d9158fa409723d6750a34b58519a42f39d9","255885884","2023-04-05","3","2","0"
10+
"3479b554e95332620756a7f417ad4d6acbfaea54","255885884","2023-04-22","6","2","0"
11+
"690f7f1a963817cd620701844580433c405fa019","255885884","2023-04-24","1","2","0"
12+
"932b7cdb4b09d42e15c61bc24e4a07db07568fd0","255885884","2023-04-28","5","2","0"
13+
"372bc1dab0440089873e6925879ea196d9a4a8b3","255885884","2023-05-04","4","2","0"
14+
"a79ab9ae69bc1ab6e6765f638f5dd8ec079caa56","255885884","2023-05-06","6","2","0"
15+
"bc752f7f08fff8c16580a7eb36f10d445eb70c98","255885884","2023-05-08","1","2","0"
16+
"810a089ab9052b31a47dfcd15d46d5adbe0072b4","255885884","2023-03-09","4","1","0"
17+
"ab2276e5c4ecc29ab91f06196eaa28ebe398e067","255885884","2023-03-10","5","1","0"
18+
"a1f21a0a372fa2dc2487010142d0025238a57b68","255885884","2023-03-11","6","1","0"
19+
"8d8f65e630ffd865d4b3bab29ad6031459c6194f","255885884","2023-03-12","0","1","0"
20+
"d2df6e3f288747c9f59bf2caad54ea9a02b93b81","255885884","2023-03-13","1","1","0"
21+
"f7630c8c0629aa9ea00f93da0c706ea893606177","255885884","2023-03-14","2","1","0"
22+
"0b9f5dfd5e36f7a5ba2bfac9bf6e0a4dfba1a1a1","255885884","2023-03-18","6","1","0"
23+
"a7ccfc291b472d36e4462b9dd46963223f62e283","255885884","2023-03-22","3","1","0"
24+
"c9222c5c237e0dc866c0816d685bb4601dddc99a","255885884","2023-03-23","4","1","0"
25+
"bcbdc989391e5436abe566b641f50d2bccc6f49d","255885884","2023-03-24","5","1","0"
26+
"6c72b35050d28080006e988597bf4e601479c532","255885884","2023-03-25","6","1","0"
27+
"0fea5a4587633b25ebf748b2203d5fa46d53324d","255885884","2023-03-26","0","1","0"
28+
"c171f9b873901812c083f13fde11aafd67407bc6","255885884","2023-03-29","3","1","0"
29+
"483cbd89ceb001246a61bddd340f7cfb8a7d6ecd","255885884","2023-03-31","5","1","0"
30+
"0ccd7dad4a4de6b6e7bea51daf2abb7f29f1b320","255885884","2023-04-02","0","1","0"
31+
"df787f933da2e54e832d9dd7f212371bef8e6751","255885884","2023-04-04","2","1","0"
32+
"7abe9295662dc06fadecfee024439ef0e328e66b","255885884","2023-04-06","4","1","0"
33+
"4b2a0f97ba3b982481da174f2497c6f3cd463045","255885884","2023-04-07","5","1","0"
34+
"497224d74eb00c6c9f46abe18a049115674c04b6","255885884","2023-04-08","6","1","0"
35+
"0717f614f328d701340c5638ff4b79448f31cdd8","255885884","2023-04-10","1","1","0"
36+
"36d4537d931d1e614cf6874099f5661bc30927df","255885884","2023-04-12","3","1","0"
37+
"207ab77dd04c89d937d03d37474a66aac126d0b0","255885884","2023-04-13","4","1","0"
38+
"f16537004f8b68e9da694295b65da7f9c97ef9be","255885884","2023-04-14","5","1","0"
39+
"542273b2db7a35d316ba112a17bebbc14eaa5694","255885884","2023-04-16","0","1","0"
40+
"e287321e33f1ae47e175fa99b82e3a4ffa7b4149","255885884","2023-04-17","1","1","0"
41+
"0163c6a7f236f9b805059f93556ba584dbda59e6","255885884","2023-04-19","3","1","0"
42+
"52edb76dbd1c590a772504a3e9099a36c699ca5c","255885884","2023-04-21","5","1","0"
43+
"f99ea979482c8cb8f8a1ddfdd5417e4776f46f12","255885884","2023-04-23","0","1","0"
44+
"7388dc29d0ce8fb9836a5b66f48ad0f47ff5efbc","255885884","2023-04-25","2","1","0"
45+
"f748841f37163c1d38419cb47b9b5de7f505f987","255885884","2023-04-29","6","1","0"
46+
"ea8de439e65f1b77359449586efbd6b7e49501e8","255885884","2023-04-30","0","1","0"
47+
"2a63d921bf25df05d90b9cb0b3fc4d54dee99876","255885884","2023-05-01","1","1","0"
48+
"14f5cba68cf4083d017cb033223c0515932dc8f6","255885884","2023-05-02","2","1","0"
49+
"bb72ce4b6f330dab42b05cfde3f4ff4b93aee838","255885884","2023-05-03","3","1","0"
50+
"522b3e8fd76cf283eba1fdea3965928221f6a213","255885884","2023-05-05","5","1","0"
51+
"6e419d6b5654e1b4fb358b83395cd8f649caa876","255885884","2023-05-07","0","1","0"
52+
"6519f3e86e6cdc6d00c20a671b6dbc0b7eef54d7","255885884","2023-05-09","2","1","0"
53+
"7def282a1baed45e70f526dad58b9291e4861f25","255885884","2023-05-11","4","1","0"
54+
"93057eb54d75c6f8a31087b44cf95ceddc06d5c2","255885884","2023-05-13","6","1","0"
55+
"67c36c3bdb64d7796afdb44c93e0fb0d24fb25b2","255885884","2023-05-15","1","1","0"
56+
"1c61f9de1e727acc7941ee673eb1f3e0d9a1a718","255885884","2023-05-17","3","1","0"
57+
"c22ac60c4b33dac1d14bfc6e539fd261ad88be26","255885884","2023-05-18","4","1","0"
58+
"101d4a664e920f8b500110e25ba3d6f180c1b534","255885884","2023-05-19","5","1","0"
59+
"b84933e2cf39678c5d0b42ccb561edc47444714a","255885884","2023-05-20","6","1","0"
60+
"c11c529174eeaf88e18df71dfd00cd5bcf1e2a84","255885884","2023-05-21","0","1","0"
61+
"2163cb803564c4da700a33273aaf0242e1da5514","255885884","2023-05-24","3","1","0"
62+
"997485c79412e5669cb7a1d09e3228749fc3f8f9","255885884","2023-05-25","4","1","0"
63+
"fa24140c14dc60d91a9d6ba509185b59c4e9f41d","255885884","2023-05-26","5","1","0"
64+
"5a8b5d6a390626e151fa0985311b3890205b6004","255885884","2023-05-27","6","1","0"
65+
"03f1a10f322b33a21c66eee4d66e9b2de7ad62f2","255885884","2023-05-29","1","1","0"
66+
"4b662e07e0a4427599761fc58bc1906a4a43ad6a","255885884","2023-05-31","3","1","0"
67+
"6fe8664c240f430f15265df8ebf3e3c1232eb34c","255885884","2023-06-01","4","1","0"
68+
"ef2fec98b7b5c83446388ea7ace4923393894d6b","255885884","2023-06-02","5","1","0"
69+
"c98224c25fff2c406794f27dec67d03db7581bc7","255885884","2023-06-03","6","1","0"
70+
"36d6b7a9b0f5c12aa70b64972afc2f54e7096e28","255885884","2023-06-06","2","1","0"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"destination":"in.c-ex-google-analytics-cfg.users","incremental":true,"columns":["id","idProperty","date","dayOfWeek","totalUsers","itemViews"],"primary_key":["id"],"column_metadata":{"id":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"idProperty":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"date":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"dayOfWeek":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"totalUsers":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}],"itemViews":[{"key":"KBC.datatype.nullable","value":true},{"key":"KBC.datatype.basetype","value":"STRING"}]}}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"metric":"API Calls","value":1}]

0 commit comments

Comments
 (0)