Created
January 18, 2012 10:25
-
-
Save masahitojp/1632335 to your computer and use it in GitHub Desktop.
unittest2.skipIfのラップクラス
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import unittest | |
platform = "linux" | |
# for class | |
def platform_skip_test(platform_list): | |
def _platform_skip_test(c): | |
is_skip = (platform in platform_list) | |
for m in c.__dict__: | |
# "test_" で始まるメソッドをunittest.skipIfでwrap | |
if m.startswith("test_"): | |
setattr(c, m, unittest.skipIf(is_skip, "Test disabled in the current platform")(getattr(c, m))) | |
return c | |
return _platform_skip_test | |
@platform_skip_test(["linux"]) | |
class TestSequenceFunctions(unittest.TestCase): | |
def setUp(self): | |
self.seq = range(10) | |
def test_shuffle(self): | |
# make sure the shuffled sequence does not lose any elements | |
random.shuffle(self.seq) | |
self.seq.sort() | |
self.assertEqual(self.seq, range(10)) | |
# should raise an exception for an immutable sequence | |
self.assertRaises(TypeError, random.shuffle, (1,2,3)) | |
def test_choice(self): | |
element = random.choice(self.seq) | |
self.assertTrue(element in self.seq) | |
def test_sample(self): | |
with self.assertRaises(ValueError): | |
random.sample(self.seq, 20) | |
for element in random.sample(self.seq, 5): | |
self.assertTrue(element in self.seq) | |
if __name__ == '__main__': | |
unittest.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment