File tree 4 files changed +76
-3
lines changed
fixtures/node_templates/bad_metadata/samples 4 files changed +76
-3
lines changed Original file line number Diff line number Diff line change 17
17
import os
18
18
import yaml
19
19
from typing import List , Dict
20
+ from synthtool .log import logger
20
21
21
22
22
23
def _read_sample_metadata_comment (sample_file : str ) -> Dict :
@@ -37,9 +38,13 @@ def _read_sample_metadata_comment(sample_file: str) -> Dict:
37
38
# the metadata yaml is stored in a comments, remove the
38
39
# prefix so that we can parse the yaml contained.
39
40
sample_metadata_string = re .sub (r"((#|//) ?)" , "" , match .group ("metadata" ))
40
- sample_metadata = yaml .load (sample_metadata_string , Loader = yaml .SafeLoader )[
41
- "sample-metadata"
42
- ]
41
+ try :
42
+ sample_metadata = yaml .load (
43
+ sample_metadata_string , Loader = yaml .SafeLoader
44
+ )["sample-metadata" ]
45
+ except yaml .scanner .ScannerError :
46
+ # warn and continue on bad metadata
47
+ logger .warning (f"bad metadata detected in { sample_file } " )
43
48
return sample_metadata
44
49
45
50
Original file line number Diff line number Diff line change
1
+ /**
2
+ * Copyright 2019, Google, Inc.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ //
17
+ // sample-metadata:
18
+ // title: Metadata Example 1
19
+ // description: this is a description.
20
+ // bad wrapping here
21
+ // usage: node hello-world.js
22
+ //
23
+ 'use strict' ;
24
+
25
+ async function viewBucketIamMembers ( bucketName ) {
26
+ // [START storage_view_bucket_iam_members]
27
+ // Imports the Google Cloud client library
28
+ // [END storage_view_bucket_iam_members]
29
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * Copyright 2019, Google, Inc.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ //
17
+ // sample-metadata:
18
+ // title: Metadata Example 1
19
+ // description: this is a description.
20
+ // usage: node hello-world.js
21
+ //
22
+ 'use strict' ;
23
+
24
+ async function viewBucketIamMembers ( bucketName ) {
25
+ // [START storage_view_bucket_iam_members]
26
+ // Imports the Google Cloud client library
27
+ // [END storage_view_bucket_iam_members]
28
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,14 @@ def test_load_node_samples():
33
33
assert all_samples [0 ]["usage" ] == "node hello-world.js"
34
34
assert all_samples [1 ]["title" ] == "Metadata Example 2"
35
35
assert all_samples [1 ]["usage" ] == "node goodnight-moon.js"
36
+
37
+
38
+ def test_bad_metadata ():
39
+ with util .chdir (FIXTURES / "node_templates" / "bad_metadata" ):
40
+ all_samples = samples .all_samples (["samples/*.js" ])
41
+
42
+ # should have included additional meta-information provided.
43
+ assert all_samples [0 ]["title" ] == "Bad_metadata1"
44
+ assert "usage" not in all_samples [0 ]
45
+ assert all_samples [1 ]["title" ] == "Metadata Example 1"
46
+ assert all_samples [1 ]["usage" ] == "node hello-world.js"
You can’t perform that action at this time.
0 commit comments