1# Copyright 2021 Google LLC
2#
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"""BuildPrBody tests."""
16
17__author__ = "[email protected] (Anthonios Partheniou)"
18
19import pathlib
20import shutil
21import unittest
22
23from buildprbody import BuildPrBody
24from changesummary import ChangeType
25
26SCRIPTS_DIR = pathlib.Path(__file__).parent.resolve()
27CHANGE_SUMMARY_DIR = SCRIPTS_DIR / "test_resources" / "buildprbody_resources"
28
29EXPECTED_PR_BODY_OUTPUT = """\
30## Deleted keys were detected in the following stable discovery artifacts:
31bigquery v2 https://github.com/googleapis/google-api-python-client/commit/123
32cloudtasks v2 https://github.com/googleapis/google-api-python-client/commit/456
33
34## Discovery Artifact Change Summary:
35feat(bigquery): update the api https://github.com/googleapis/google-api-python-client/commit/123
36feat(cloudtasks): update the api https://github.com/googleapis/google-api-python-client/commit/456
37feat(drive): update the api https://github.com/googleapis/google-api-python-client/commit/789
38"""
39
40
41class TestBuildPrBody(unittest.TestCase):
42    def setUp(self):
43        self.buildprbody = BuildPrBody(change_summary_directory=CHANGE_SUMMARY_DIR)
44
45    def test_get_commit_uri_returns_correct_string(self):
46        base_uri = "https://github.com/googleapis/google-api-python-client/commit/"
47
48        expected_uri = "".join([base_uri, "123"])
49        result = self.buildprbody.get_commit_uri(name="bigquery")
50        self.assertEqual(result, expected_uri)
51
52        expected_uri = "".join([base_uri, "456"])
53        result = self.buildprbody.get_commit_uri(name="cloudtasks")
54        self.assertEqual(result, expected_uri)
55
56        expected_uri = "".join([base_uri, "789"])
57        result = self.buildprbody.get_commit_uri(name="drive")
58        self.assertEqual(result, expected_uri)
59
60    def test_generate_pr_body(self):
61        self.buildprbody.generate_pr_body()
62
63        with open(CHANGE_SUMMARY_DIR / "allapis.summary") as f:
64            pr_body = "".join(f.readlines())
65        self.assertEqual(pr_body, EXPECTED_PR_BODY_OUTPUT)
66