Skip to content

Commit

Permalink
Require unittest2 module for Python < 3.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kentzo committed Oct 30, 2017
1 parent 56aa9f2 commit de1533c
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 30 deletions.
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ mock==2.0.0; python_version < '3.0'
pyobjc-core==4.0; sys_platform == 'darwin'
pytest==3.2.3
pytest-cov==2.5.1
unittest2==1.1.0; python_version < '3.0'
5 changes: 4 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
]

if sys.version_info < (3,):
TEST_REQUIREMENTS.append('mock')
TEST_REQUIREMENTS.extend([
'mock',
'unittest2'
])


with open(os.path.join(os.path.dirname(__file__), 'power', 'version.py')) as f:
Expand Down
60 changes: 31 additions & 29 deletions tests/test_common.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# coding=utf-8
from __future__ import print_function

import unittest
try:
import unittest2 as unittest
except ImportError:
import unittest

try:
import unittest.mock as mock
Expand All @@ -12,54 +15,53 @@


class TestPowerManagementCommon(unittest.TestCase):
def testGetLowBatteryWarningLevel(self):
def test_get_low_battery_warningLevel(self):
level = power.PowerManagement().get_low_battery_warning_level()
self.assertIsNotNone(level)
self.assertIsInstance(level, int)
self.assertIn(level, [power.LOW_BATTERY_WARNING_NONE, power.LOW_BATTERY_WARNING_EARLY, power.LOW_BATTERY_WARNING_FINAL])

def testGetRemainingEstimate(self):
def test_get_remaining_estimate(self):
estimate = power.PowerManagement().get_time_remaining_estimate()
self.assertIsNotNone(estimate)
self.assertIsInstance(estimate, float)
self.assertTrue(estimate == power.TIME_REMAINING_UNKNOWN or estimate == power.TIME_REMAINING_UNLIMITED or estimate >= 0.0)

def testGetProvidingPowerSource(self):
def test_get_providing_power_source(self):
type = power.PowerManagement().get_providing_power_source_type()
self.assertIsNotNone(type)
self.assertIsInstance(type, int)
self.assertIn(type, [power.POWER_TYPE_AC, power.POWER_TYPE_BATTERY, power.POWER_TYPE_UPS])

def testFallback(self):
with self.subTest('unsupported platform'):
with mock.patch('sys.platform', 'planb'):
self.assertEqual(power.get_power_management_class(), power.common.PowerManagementNoop)
def test_fallback_unsupported_platform(self):
with mock.patch('sys.platform', 'planb'):
self.assertEqual(power.get_power_management_class(), power.common.PowerManagementNoop)

with self.subTest('import error'):
with mock.patch('power.get_platform_power_management_class', side_effect=RuntimeError):
self.assertEqual(power.get_power_management_class(), power.common.PowerManagementNoop)
def test_fallback_importError(self):
with mock.patch('power.get_platform_power_management_class', side_effect=RuntimeError):
self.assertEqual(power.get_power_management_class(), power.common.PowerManagementNoop)

with self.subTest('usage error'):
class PowerManagementFaulty(power.common.PowerManagementBase):
def add_observer(self, observer):
raise RuntimeError()
def test_fallback_usage_error(self):
class PowerManagementFaulty(power.common.PowerManagementBase):
def add_observer(self, observer):
raise RuntimeError()

def remove_observer(self, observer):
raise RuntimeError()
def remove_observer(self, observer):
raise RuntimeError()

def get_providing_power_source_type(self):
raise RuntimeError()
def get_providing_power_source_type(self):
raise RuntimeError()

def get_time_remaining_estimate(self):
raise RuntimeError()
def get_time_remaining_estimate(self):
raise RuntimeError()

def get_low_battery_warning_level(self):
raise RuntimeError()
def get_low_battery_warning_level(self):
raise RuntimeError()

with mock.patch('power.get_platform_power_management_class', return_value=PowerManagementFaulty):
c = power.get_power_management_class()
self.assertTrue(issubclass(c, PowerManagementFaulty))
with mock.patch('power.get_platform_power_management_class', return_value=PowerManagementFaulty):
c = power.get_power_management_class()
self.assertTrue(issubclass(c, PowerManagementFaulty))

with self.assertWarns(RuntimeWarning):
pm = c()
pm.get_providing_power_source_type()
with self.assertWarns(RuntimeWarning):
pm = c()
self.assertEqual(pm.get_providing_power_source_type(), power.POWER_TYPE_AC)

0 comments on commit de1533c

Please sign in to comment.