From feadde428e17f8b68ab0b2a218c4a2fa69a9509c Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Mon, 4 Aug 2014 17:55:35 +0100 Subject: [PATCH] Added some initial tests, fixed a few minor issues. --- pyzkb/pyzkb.py | 5 +++-- tests/test_pyzkb.py | 50 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/pyzkb/pyzkb.py b/pyzkb/pyzkb.py index 46d4e25..c0989d7 100755 --- a/pyzkb/pyzkb.py +++ b/pyzkb/pyzkb.py @@ -58,6 +58,7 @@ class ZKillboard(object): ('no-items', False), ('no-attackers', False), ('api-only', False), + ('xml', False), ) _MODIFIERS = [x for x, y in _MODIFIER_DATA] @@ -79,11 +80,11 @@ class ZKillboard(object): raise InvalidModifier('%s is a unknown modifier' % mod_name) if args is None and mod_name.lower() in ZKillboard._MODIFIERS_ARGUMENT: raise InvalidModifier('%s requires a argument' % mod_name) - if args and isinstance(args, list) and len(list) > 10: + if args and isinstance(args, list) and len(args) > 10: raise ValueError('No more than 10 IDs are allowed at a time') x = copy.deepcopy(self) x._modifiers.append((mod_name, args)) - if mod_name == 'xml': + if mod_name.lower() == 'xml': x._xml_format = True return x return modifier_func diff --git a/tests/test_pyzkb.py b/tests/test_pyzkb.py index 3148f5f..f69c7e1 100755 --- a/tests/test_pyzkb.py +++ b/tests/test_pyzkb.py @@ -10,16 +10,56 @@ Tests for `pyzkb` module. import unittest -from pyzkb import pyzkb +from pyzkb import ZKillboard, InvalidModifier -class TestPyzkb(unittest.TestCase): +class TestZKillboard(unittest.TestCase): def setUp(self): - pass + self.kb = ZKillboard() + self.kb_noverification = ZKillboard(modifier_validation=False) - def test_something(self): - pass + def test_single_kill(self): + headers, data = self.kb.get(killID=40403014) + self.assertIsNotNone(data) + self.assertTrue(isinstance(data, list)) + self.assertTrue(isinstance(data[0], dict)) + self.assertTrue(len(data) == 1) + self.assertIn('killID', data[0]) + + def test_invalid_modifier(self): + self.assertRaises(InvalidModifier, self.kb.blah) + + def test_invalid_parameter_modifier(self): + self.assertRaises(InvalidModifier, self.kb.solo, 1) + + def test_no_parameter_modifier(self): + self.assertRaises(InvalidModifier, self.kb.killID) + + def test_too_many_ids(self): + self.assertRaises(ValueError, self.kb.solarSystemID, [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11]) + + def test_disabled_modifier_validation(self): + try: + self.kb_noverification.blah() + except InvalidModifier: + self.fail('Raise InvalidModifier unexpectedly.') + + def test_disabled_modifier_validation_parameter(self): + try: + self.kb_noverification.blah(213123) + except InvalidModifier: + self.fail('Raise InvalidModifier unexpectedly.') + + def test_no_writeback(self): + x = self.kb.killID(40403014) + self.assertTrue(len(self.kb._modifiers) == 0) + self.assertTrue(len(x._modifiers) == 1) + + def test_xml_format_set(self): + self.kb.xml() + self.assertTrue(len(self.kb._modifiers), 1) + self.assertTrue(self.kb._xml_format) def tearDown(self): pass