Skip to content

Commit 7c6b03b

Browse files
tests: fix failing kubernetes test (#194)
1 parent 66c8a91 commit 7c6b03b

5 files changed

Lines changed: 46 additions & 13 deletions

File tree

packages/google-cloud-logging/tests/environment/deployable/python/snippets.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
import logging
16+
import os
1617

1718
try:
1819
import google.cloud.logging
@@ -45,3 +46,26 @@ def pylogging(log_text="pylogging", severity="warning", **kwargs):
4546
logging.error(log_text)
4647
else:
4748
logging.critical(log_text)
49+
50+
def print_handlers(**kwargs):
51+
root_logger = logging.getLogger()
52+
handlers_str = ', '.join([type(h).__name__ for h in root_logger.handlers])
53+
logging.info(handlers_str)
54+
55+
def remove_stream_handlers(**kwargs):
56+
logger = logging.getLogger()
57+
for handler in logger.handlers:
58+
if isinstance(handler, logging.StreamHandler):
59+
logging.error(handler)
60+
logger.removeHandler(handler)
61+
62+
def print_env_vars(env_var=None, **kwargs):
63+
if env_var:
64+
value = os.environ.get(env_var, None)
65+
if value:
66+
logging.error(value)
67+
else:
68+
logging.error(f"{env_var}: not found")
69+
else:
70+
logging.error(os.environ)
71+

packages/google-cloud-logging/tests/environment/envctl/env_scripts/python/functions.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ deploy() {
4848
set +e
4949
gcloud pubsub topics create $SERVICE_NAME 2>/dev/null
5050
set -e
51-
local RUNTIME="${2:-python37}"
51+
local RUNTIME="${2:-python38}"
5252
# set up deployment directory
5353
# copy over local copy of library
5454
pushd $SUPERREPO_ROOT

packages/google-cloud-logging/tests/environment/envctl/env_scripts/python/kubernetes.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ attach_or_create_gke_cluster(){
5858
echo "cluster not found. creating..."
5959
gcloud container clusters create $SERVICE_NAME \
6060
--zone $ZONE \
61-
--scopes "https://www.googleapis.com/auth/pubsub"
61+
--scopes=gke-default,pubsub
6262
fi
6363
set -e
6464
}
@@ -98,6 +98,7 @@ EOF
9898
set -e
9999
# deploy test container
100100
kubectl apply -f $TMP_DIR
101+
sleep 60
101102
# wait for pod to spin up
102103
kubectl wait --for=condition=ready pod -l app=$SERVICE_NAME
103104
# wait for the pub/sub subscriber to start

packages/google-cloud-logging/tests/environment/tests/common/common.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from time import sleep
2525
from datetime import datetime
2626
from datetime import timezone
27+
from datetime import timedelta
2728
import os
2829
import sys
2930
import uuid
@@ -38,25 +39,24 @@ class Common:
3839
# environment name must be set by subclass
3940
environment = None
4041

41-
def _get_logs(self, timestamp=None):
42+
def _add_time_condition_to_filter(self, filter_str, timestamp=None):
4243
time_format = "%Y-%m-%dT%H:%M:%S.%f%z"
4344
if not timestamp:
4445
timestamp = datetime.now(timezone.utc) - timedelta(minutes=10)
45-
_, filter_str = self._script.run_command(Command.GetFilter)
46-
filter_str += ' AND timestamp > "%s"' % timestamp.strftime(time_format)
46+
return f'"{filter_str}" AND timestamp > "{timestamp.strftime(time_format)}"'
47+
48+
49+
def _get_logs(self, filter_str=None):
50+
if not filter_str:
51+
_, filter_str = self._script.run_command(Command.GetFilter)
4752
iterator = self._client.list_entries(filter_=filter_str)
4853
entries = list(iterator)
4954
return entries
5055

51-
def _trigger(self, function, return_logs=True, **kwargs):
56+
def _trigger(self, function, **kwargs):
5257
timestamp = datetime.now(timezone.utc)
5358
args_str = ",".join([f'{k}="{v}"' for k, v in kwargs.items()])
5459
self._script.run_command(Command.Trigger, [function, args_str])
55-
# give the command time to be received
56-
sleep(30)
57-
if return_logs:
58-
log_list = self._get_logs(timestamp)
59-
return log_list
6060

6161
@classmethod
6262
def setUpClass(cls):
@@ -90,7 +90,15 @@ def tearDown_class(cls):
9090

9191
def test_receive_log(self):
9292
log_text = f"{inspect.currentframe().f_code.co_name}: {uuid.uuid1()}"
93-
log_list = self._trigger("pylogging", log_text=log_text)
93+
self._trigger("pylogging", log_text=log_text)
94+
# give the command time to be received
95+
sleep(30)
96+
filter_str = self._add_time_condition_to_filter(log_text)
97+
# retrieve resulting logs
98+
log_list = self._get_logs(filter_str)
99+
100+
self.assertEqual(len(log_list), 1)
101+
94102
found_log = None
95103
for log in log_list:
96104
message = (

tests/environment

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit e4cab8acdbf0054a9e4b5b3b3a2bbc68f108d982
1+
Subproject commit 46658b49b65d40a1311704b3fe898f8737bb4137

0 commit comments

Comments
 (0)