Skip to content

Instantly share code, notes, and snippets.

@masahitojp
Created January 18, 2012 10:25
Show Gist options
  • Save masahitojp/1632335 to your computer and use it in GitHub Desktop.
Save masahitojp/1632335 to your computer and use it in GitHub Desktop.
unittest2.skipIfのラップクラス
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