Merge "Enable Py35 tests to run"

This commit is contained in:
Jenkins 2017-05-09 12:43:36 +00:00 committed by Gerrit Code Review
commit fa74fda51c
11 changed files with 60 additions and 48 deletions

View File

@ -17,6 +17,9 @@ import pymysql
from monasca_notification.common.repositories.base import base_repo
from monasca_notification.common.repositories import exceptions as exc
import six
log = logging.getLogger(__name__)
@ -49,7 +52,7 @@ class MysqlRepo(base_repo.BaseRepo):
self._mysql = pymysql.connect(host=self._mysql_host,
port=self._mysql_port,
user=self._mysql_user,
passwd=unicode(self._mysql_passwd).encode('utf-8'),
passwd=six.text_type(self._mysql_passwd).encode('utf-8'),
db=self._mysql_dbname,
ssl=self._mysql_ssl,
use_unicode=True,

View File

@ -52,7 +52,7 @@ class Notification(object):
retry_count - number of times we've tried to send
alarm - info that caused the notification
notifications that come after this one to remain uncommitted.
Note that data may include unicode strings.
Note that data may include six.text_type strings.
"""
self.id = id
self.address = address

View File

@ -15,10 +15,12 @@
import json
import requests
import urlparse
from monasca_notification.plugins import abstract_notifier
from six.moves import urllib
"""
notification.address = https://hipchat.hpcloud.net/v2/room/<room_id>/notification?auth_token=432432
@ -88,11 +90,11 @@ class HipChatNotifier(abstract_notifier.AbstractNotifier):
"""
hipchat_message = self._build_hipchat_message(notification)
parsed_url = urlparse.urlsplit(notification.address)
parsed_url = urllib.parse.urlsplit(notification.address)
query_params = urlparse.parse_qs(parsed_url.query)
query_params = urllib.parse.parse_qs(parsed_url.query)
# URL without query params
url = urlparse.urljoin(notification.address, urlparse.urlparse(notification.address).path)
url = urllib.parse.urljoin(notification.address, urllib.parse.urlparse(notification.address).path)
# Default option is to do cert verification
verify = not self._config.get('insecure', True)

View File

@ -16,11 +16,13 @@
from jinja2 import Template
import jira
import json
import urlparse
import yaml
from monasca_notification.plugins.abstract_notifier import AbstractNotifier
from six.moves import urllib
"""
Note:
This plugin doesn't support multi tenancy. Multi tenancy requires support for
@ -149,10 +151,10 @@ class JiraNotifier(AbstractNotifier):
jira_fields = self._build_jira_message(notification)
parsed_url = urlparse.urlsplit(notification.address)
query_params = urlparse.parse_qs(parsed_url.query)
parsed_url = urllib.parse.urlsplit(notification.address)
query_params = urllib.parse.parse_qs(parsed_url.query)
# URL without query params
url = urlparse.urljoin(notification.address, urlparse.urlparse(notification.address).path)
url = urllib.parse.urljoin(notification.address, urllib.parse.urlparse(notification.address).path)
jira_fields["project"] = query_params["project"][0]
if query_params.get("component"):

View File

@ -15,10 +15,12 @@
import json
import requests
import urlparse
from monasca_notification.plugins import abstract_notifier
from six.moves import urllib
"""
notification.address = https://slack.com/api/chat.postMessage?token=token&channel=#channel"
@ -77,10 +79,10 @@ class SlackNotifier(abstract_notifier.AbstractNotifier):
# Slack room has "#" as first character
address = address.replace("#", "%23")
parsed_url = urlparse.urlsplit(address)
query_params = urlparse.parse_qs(parsed_url.query)
parsed_url = urllib.parse.urlsplit(address)
query_params = urllib.parse.parse_qs(parsed_url.query)
# URL without query params
url = urlparse.urljoin(address, urlparse.urlparse(address).path)
url = urllib.parse.urljoin(address, urllib.parse.urlparse(address).path)
# Default option is to do cert verification
verify = not self._config.get('insecure', True)

View File

@ -10,3 +10,5 @@ funcsigs>=0.4;python_version=='2.7' or python_version=='2.6' # Apache-2.0
os-testr>=0.8.0 # Apache-2.0
testrepository>=0.0.18 # Apache-2.0/BSD
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
PyMySQL>=0.7.6 # MIT License
psycopg2>=2.5 # LGPL/ZPL

View File

@ -19,10 +19,12 @@ import socket
import time
import unittest
import six
from monasca_notification.notification import Notification
from monasca_notification.plugins import email_notifier
UNICODE_CHAR = unichr(2344)
UNICODE_CHAR = six.unichr(2344)
UNICODE_CHAR_ENCODED = UNICODE_CHAR.encode("utf-8")

View File

@ -13,12 +13,18 @@
import json
import mock
import Queue
import unittest
import six
from monasca_notification import notification as m_notification
from monasca_notification.plugins import hipchat_notifier
if six.PY2:
import Queue as queue
else:
import queue
def alarm(metrics):
return {"tenantId": "0",
@ -43,7 +49,7 @@ class requestsResponse(object):
class TestHipchat(unittest.TestCase):
def setUp(self):
self.trap = Queue.Queue()
self.trap = queue.Queue()
self.hipchat_config = {'timeout': 50}
def tearDown(self):

View File

@ -15,14 +15,20 @@
import json
import mock
import Queue
import requests
import time
import unittest
import six
from monasca_notification import notification as m_notification
from monasca_notification.plugins import pagerduty_notifier
if six.PY2:
import Queue as queue
else:
import queue
def alarm(metrics):
return {"tenantId": "0",
@ -45,7 +51,7 @@ class requestsResponse(object):
class TestWebhook(unittest.TestCase):
def setUp(self):
self.trap = Queue.Queue()
self.trap = queue.Queue()
self.pagerduty_config = {'timeout': 50, 'key': 'foobar'}
def tearDown(self):

View File

@ -15,13 +15,19 @@
import json
import mock
import Queue
import requests
import unittest
import six
from monasca_notification import notification as m_notification
from monasca_notification.plugins import webhook_notifier
if six.PY2:
import Queue as queue
else:
import queue
def alarm(metrics):
return {"tenantId": "0",
@ -46,7 +52,7 @@ class requestsResponse(object):
class TestWebhook(unittest.TestCase):
def setUp(self):
self.trap = Queue.Queue()
self.trap = queue.Queue()
self.webhook_config = {'timeout': 50}
def tearDown(self):

35
tox.ini
View File

@ -1,6 +1,6 @@
[tox]
envlist = {py27,py35,pypy}-{mysql,postgres},pep8,cover
minversion = 2.1
minversion = 2.5
skipsdist = True
[testenv]
@ -22,29 +22,12 @@ whitelist_externals = bash
rm
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
PyMySQL>=0.6.1
commands =
find . -type f -name "*.pyc" -delete
rm -Rf .testrepository/times.dbm
ostestr {posargs}
[testenv:py27-postgres]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
psycopg2>=2.5
[testenv:py35-postgres]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
psycopg2>=2.5
[testenv:pypy-postgres]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
psycopg2>=2.5
[testenv:cover]
basepython = python2.7
deps = {[testenv]deps}
commands =
{[testenv]commands}
coverage erase
@ -56,18 +39,20 @@ commands =
oslo_debug_helper -t ./monasca_notification/tests {posargs}
[testenv:pep8]
deps =
{[testenv]deps}
commands =
{[testenv:flake8]commands}
{[bandit]commands}
{[testenv:bandit]commands}
[testenv:venv]
commands = {posargs}
[testenv:flake8]
commands =
flake8 monasca_notification
flake8 monasca_notification
[testenv:bandit]
commands =
bandit -r monasca_notification -n5 -x monasca_notification/tests
[flake8]
max-line-length = 120
@ -76,7 +61,3 @@ max-line-length = 120
# H405 multi line docstring summary not separated with an empty line
ignore = F821,H201,H405
exclude=.venv,.git,.tox,dist,*egg,build
[bandit]
commands =
bandit -r monasca_notification -n5 -x monasca_notification/tests