This repository has been archived by the owner on Dec 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 140
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dialogflow: use unique names for all resources for tests to avoid col…
…… [(#2696)](GoogleCloudPlatform/python-docs-samples#2696) * dialogflow: use unique names for all resources for tests to avoid collision * lint: line length * break up knowledge base tests and document tests from one file into individual tests * lint * bump library version * ping googleapis-common-protos to avoid release breakage * Update requirements.txt Co-authored-by: Gus Class <[email protected]>
- Loading branch information
1 parent
8efe44d
commit 66eb94f
Showing
21 changed files
with
448 additions
and
120 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Copyright 2020 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from __future__ import absolute_import | ||
|
||
import datetime | ||
import os | ||
|
||
import dialogflow_v2beta1 as dialogflow | ||
import pytest | ||
|
||
import document_management | ||
|
||
PROJECT_ID = os.getenv('GCLOUD_PROJECT') | ||
KNOWLEDGE_BASE_NAME = 'knowledge_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
DOCUMENT_DISPLAY_NAME = 'test_document_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
pytest.KNOWLEDGE_BASE_ID = None | ||
|
||
|
||
@pytest.fixture(scope="function", autouse=True) | ||
def setup_teardown(): | ||
# Create a knowledge base to use in document management | ||
client = dialogflow.KnowledgeBasesClient() | ||
project_path = client.project_path(PROJECT_ID) | ||
knowledge_base = dialogflow.types.KnowledgeBase( | ||
display_name=KNOWLEDGE_BASE_NAME) | ||
response = client.create_knowledge_base(project_path, knowledge_base) | ||
pytest.KNOWLEDGE_BASE_ID = response.name.split( | ||
'/knowledgeBases/')[1].split('\n')[0] | ||
|
||
yield | ||
|
||
# Delete the created knowledge base | ||
knowledge_base_path = client.knowledge_base_path( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID) | ||
client.delete_knowledge_base(knowledge_base_path, force=True) | ||
|
||
|
||
def test_create_document(capsys): | ||
document_management.create_document( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID, DOCUMENT_DISPLAY_NAME, | ||
'text/html', 'FAQ', 'https://cloud.google.com/storage/docs/faq') | ||
out, _ = capsys.readouterr() | ||
assert DOCUMENT_DISPLAY_NAME in out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Copyright 2020 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from __future__ import absolute_import | ||
|
||
import datetime | ||
import os | ||
import pytest | ||
|
||
import dialogflow_v2beta1 as dialogflow | ||
|
||
import knowledge_base_management | ||
|
||
PROJECT_ID = os.getenv('GCLOUD_PROJECT') | ||
KNOWLEDGE_BASE_NAME = 'knowledge_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
pytest.KNOWLEDGE_BASE_ID = None | ||
|
||
|
||
@pytest.fixture(scope="function", autouse=True) | ||
def teardown(): | ||
yield | ||
|
||
# Delete the created knowledge base | ||
client = dialogflow.KnowledgeBasesClient() | ||
assert pytest.KNOWLEDGE_BASE_ID is not None | ||
knowledge_base_path = client.knowledge_base_path( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID) | ||
client.delete_knowledge_base(knowledge_base_path) | ||
|
||
|
||
def test_create_knowledge_base(capsys): | ||
knowledge_base_management.create_knowledge_base(PROJECT_ID, | ||
KNOWLEDGE_BASE_NAME) | ||
out, _ = capsys.readouterr() | ||
assert KNOWLEDGE_BASE_NAME in out | ||
|
||
pytest.KNOWLEDGE_BASE_ID = out.split('/knowledgeBases/')[1].split('\n')[0] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Copyright 2020 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from __future__ import absolute_import | ||
|
||
import datetime | ||
import os | ||
|
||
import dialogflow_v2beta1 as dialogflow | ||
import pytest | ||
|
||
import document_management | ||
|
||
PROJECT_ID = os.getenv('GCLOUD_PROJECT') | ||
KNOWLEDGE_BASE_NAME = 'knowledge_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
DOCUMENT_DISPLAY_NAME = 'test_document_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
pytest.KNOWLEDGE_BASE_ID = None | ||
pytest.DOCUMENT_ID = None | ||
|
||
|
||
@pytest.fixture(scope="function", autouse=True) | ||
def setup_teardown(): | ||
# Create a knowledge base to use in document management | ||
client = dialogflow.KnowledgeBasesClient() | ||
project_path = client.project_path(PROJECT_ID) | ||
knowledge_base = dialogflow.types.KnowledgeBase( | ||
display_name=KNOWLEDGE_BASE_NAME) | ||
response = client.create_knowledge_base(project_path, knowledge_base) | ||
pytest.KNOWLEDGE_BASE_ID = response.name.split( | ||
'/knowledgeBases/')[1].split('\n')[0] | ||
|
||
# Create a document to delete | ||
knowledge_base_path = client.knowledge_base_path( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID) | ||
document = dialogflow.types.Document( | ||
display_name=DOCUMENT_DISPLAY_NAME, mime_type='text/html', | ||
content_uri='https://cloud.google.com/storage/docs/faq') | ||
document.knowledge_types.append( | ||
dialogflow.types.Document.KnowledgeType.Value('FAQ')) | ||
documents_client = dialogflow.DocumentsClient() | ||
response = documents_client.create_document(knowledge_base_path, document) | ||
document = response.result(timeout=90) | ||
pytest.DOCUMENT_ID = document.name.split('/documents/')[1].split('\n')[0] | ||
|
||
yield | ||
|
||
# Delete the created knowledge base | ||
client.delete_knowledge_base(knowledge_base_path, force=True) | ||
|
||
|
||
def test_delete_document(capsys): | ||
document_management.delete_document( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID, pytest.DOCUMENT_ID) | ||
document_management.list_documents(PROJECT_ID, pytest.KNOWLEDGE_BASE_ID) | ||
out, _ = capsys.readouterr() | ||
assert DOCUMENT_DISPLAY_NAME not in out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Copyright 2020 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from __future__ import absolute_import | ||
|
||
import datetime | ||
import os | ||
|
||
import dialogflow_v2beta1 as dialogflow | ||
import pytest | ||
|
||
import knowledge_base_management | ||
|
||
PROJECT_ID = os.getenv('GCLOUD_PROJECT') | ||
KNOWLEDGE_BASE_NAME = 'knowledge_' \ | ||
+ datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
pytest.KNOWLEDGE_BASE_ID = None | ||
|
||
|
||
@pytest.fixture(scope="function", autouse=True) | ||
def setup(): | ||
# Create a knowledge base to delete | ||
client = dialogflow.KnowledgeBasesClient() | ||
project_path = client.project_path(PROJECT_ID) | ||
knowledge_base = dialogflow.types.KnowledgeBase( | ||
display_name=KNOWLEDGE_BASE_NAME) | ||
response = client.create_knowledge_base(project_path, knowledge_base) | ||
pytest.KNOWLEDGE_BASE_ID = response.name.split( | ||
'/knowledgeBases/')[1].split('\n')[0] | ||
|
||
|
||
def test_delete_knowledge_base(capsys): | ||
knowledge_base_management.delete_knowledge_base( | ||
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID) | ||
knowledge_base_management.list_knowledge_bases(PROJECT_ID) | ||
out, _ = capsys.readouterr() | ||
assert KNOWLEDGE_BASE_NAME not in out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Copyright 2020 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from __future__ import absolute_import | ||
|
||
import datetime | ||
import os | ||
|
||
import detect_intent_knowledge | ||
|
||
PROJECT_ID = os.getenv('GCLOUD_PROJECT') | ||
SESSION_ID = 'session_' + datetime.datetime.now().strftime("%Y%m%d%H%M%S") | ||
KNOWLEDGE_BASE_ID = 'MjEwMjE4MDQ3MDQwMDc0NTQ3Mg' | ||
TEXTS = ['Where is my data stored?'] | ||
|
||
|
||
def test_detect_intent_knowledge(capsys): | ||
detect_intent_knowledge.detect_intent_knowledge( | ||
PROJECT_ID, SESSION_ID, 'en-us', KNOWLEDGE_BASE_ID, TEXTS) | ||
|
||
out, _ = capsys.readouterr() | ||
assert 'Knowledge results' in out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.