From a2abdd9af5e0ea7694c6c4ca1832e09f394fc05c Mon Sep 17 00:00:00 2001 From: teddy-schmitz Date: Fri, 2 Jan 2015 14:33:56 +0800 Subject: [PATCH] Fixed tests for python 3 added six. --- pingme/pingme.py | 11 ++++------ pingme/tests/test_pingme.py | 42 +++++++++++++++++++++++++------------ requirements.txt | 3 ++- 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/pingme/pingme.py b/pingme/pingme.py index d57b81f..2a61357 100644 --- a/pingme/pingme.py +++ b/pingme/pingme.py @@ -14,15 +14,12 @@ """ from __future__ import print_function +from six.moves import configparser # pylint: disable=F0401,E0611 +from six.moves.configparser import NoSectionError, MissingSectionHeaderError # pylint: disable=F0401,E0611 import requests import argparse import os -try: - import configparser # pylint: disable=W0611 - from configparser import NoSectionError, MissingSectionHeaderError # pylint: disable=W0611 -except ImportError: - import ConfigParser # pylint: disable=W0611 - from ConfigParser import NoSectionError, MissingSectionHeaderError # pylint: disable=W0611 + import json __VERSION__ = "0.1.0" @@ -91,7 +88,7 @@ def read_config_file(fpath): :param fpath: File to read :return: dictionary of config items """ - config = ConfigParser.SafeConfigParser() + config = configparser.SafeConfigParser() config.read(fpath) try: diff --git a/pingme/tests/test_pingme.py b/pingme/tests/test_pingme.py index 53f910a..b94606d 100644 --- a/pingme/tests/test_pingme.py +++ b/pingme/tests/test_pingme.py @@ -3,53 +3,69 @@ """ Run the tests for the pingme script.""" import unittest +import io + from mock import patch +import six + from pingme import pingme -import io +from six.moves import configparser # pylint: disable=F0401 +@patch('sys.argv', return_value=['']) class PingmeTest(unittest.TestCase): """ Setup the test cases for the pingme script.""" + def __init__(self, *args, **kwargs): super(PingmeTest, self).__init__(*args, **kwargs) self.config_data = '[Default]\n' \ 'devices=123456\n' \ 'message=test message please ignore' - @patch('sys.argv', return_value=['']) @patch('requests.post') @patch('os.access', return_value=True) @patch('os.path.isfile', return_value=True) - @patch('__builtin__.open', return_value=io.BytesIO('[Default]\n' - 'devices=123456\n' - 'message=test message please ignore')) + @patch.object(configparser, 'open', create=True, + return_value=io.StringIO(six.u('[Default]\n' + 'devices=123456\n' + 'message=test message please ignore'))) def test_send_ping_success(self, mock_file, mock_isfile, mock_access, mock_post, mock_argv): mock_post.return_value.status_code = 200 with self.assertRaises(SystemExit) as excp: pingme.main() self.assertEqual(excp.exception.code, 0) - @patch('sys.argv', return_value=['']) @patch('os.path.isfile', return_value=False) - def test_send_ping_noarguments(self, mock_isfile, mock_argv): + def test_send_ping_main_noarguments(self, mock_isfile, mock_argv): with self.assertRaises(SystemExit) as excp: pingme.main() self.assertEqual(excp.exception.code, 1) @patch('requests.post') - def test_send_ping_server_error(self, mock_post): + def test_send_ping_server_error(self, mock_post, mock_argv): mock_post.return_value.status_code = 500 with self.assertRaises(SystemExit) as excp: pingme.send_ping('123456', 'test message') self.assertEqual(excp.exception.code, 1) - @patch('sys.argv', return_value=['']) @patch('os.access', return_value=True) @patch('os.path.isfile', return_value=True) - @patch('__builtin__.open', return_value=io.BytesIO('[default]\n' - 'devices=123456\n' - 'message=test message please ignore')) - def test_send_ping_badconfig(self, mock_file, mock_isfile, mock_access, mock_argv): + @patch.object(configparser, 'open', create=True, + return_value=io.StringIO(six.u('[garbage]\n' + 'devices=123456\n' + 'message=test message please ignore'))) + def test_send_ping_main_badconfig(self, mock_file, mock_isfile, mock_access, mock_argv): with self.assertRaises(SystemExit) as excp: pingme.main() self.assertEqual(excp.exception.code, 1) + + @patch('os.access', return_value=True) + @patch('os.path.isfile', return_value=True) + @patch.object(configparser, 'open', create=True, + return_value=io.StringIO(six.u('[garbage]\n' + 'devices=123456\n' + 'message=test message please ignore'))) + def test_send_ping_badconfig(self, mock_file, mock_isfile, mock_access, mock_argv): + with self.assertRaises(SystemExit) as excp: + pingme.read_config_file('/fake/path') + self.assertEqual(excp.exception.code, 1) diff --git a/requirements.txt b/requirements.txt index ed558e8..7756936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ requests==2.5.1 -mock==1.0.1 \ No newline at end of file +mock==1.0.1 +six \ No newline at end of file