Best Python code snippet using green
test_skipping.py
Source: test_skipping.py
1import unittest2from unittest.test.support import LoggingResult3class Test_TestSkipping(unittest.TestCase):4 def test_skipping(self):5 class Foo(unittest.TestCase):6 def defaultTestResult(self):7 return LoggingResult(events)8 def test_skip_me(self):9 self.skipTest("skip")10 events = []11 result = LoggingResult(events)12 test = Foo("test_skip_me")13 self.assertIs(test.run(result), result)14 self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])15 self.assertEqual(result.skipped, [(test, "skip")])16 events = []17 result = test.run()18 self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',19 'stopTest', 'stopTestRun'])20 self.assertEqual(result.skipped, [(test, "skip")])21 self.assertEqual(result.testsRun, 1)22 # Try letting setUp skip the test now.23 class Foo(unittest.TestCase):24 def defaultTestResult(self):25 return LoggingResult(events)26 def setUp(self):27 self.skipTest("testing")28 def test_nothing(self): pass29 events = []30 result = LoggingResult(events)31 test = Foo("test_nothing")32 self.assertIs(test.run(result), result)33 self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])34 self.assertEqual(result.skipped, [(test, "testing")])35 self.assertEqual(result.testsRun, 1)36 events = []37 result = test.run()38 self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',39 'stopTest', 'stopTestRun'])40 self.assertEqual(result.skipped, [(test, "testing")])41 self.assertEqual(result.testsRun, 1)42 def test_skipping_subtests(self):43 class Foo(unittest.TestCase):44 def defaultTestResult(self):45 return LoggingResult(events)46 def test_skip_me(self):47 with self.subTest(a=1):48 with self.subTest(b=2):49 self.skipTest("skip 1")50 self.skipTest("skip 2")51 self.skipTest("skip 3")52 events = []53 result = LoggingResult(events)54 test = Foo("test_skip_me")55 self.assertIs(test.run(result), result)56 self.assertEqual(events, ['startTest', 'addSkip', 'addSkip',57 'addSkip', 'stopTest'])58 self.assertEqual(len(result.skipped), 3)59 subtest, msg = result.skipped[0]60 self.assertEqual(msg, "skip 1")61 self.assertIsInstance(subtest, unittest.TestCase)62 self.assertIsNot(subtest, test)63 subtest, msg = result.skipped[1]64 self.assertEqual(msg, "skip 2")65 self.assertIsInstance(subtest, unittest.TestCase)66 self.assertIsNot(subtest, test)67 self.assertEqual(result.skipped[2], (test, "skip 3"))68 events = []69 result = test.run()70 self.assertEqual(events,71 ['startTestRun', 'startTest', 'addSkip', 'addSkip',72 'addSkip', 'stopTest', 'stopTestRun'])73 self.assertEqual([msg for subtest, msg in result.skipped],74 ['skip 1', 'skip 2', 'skip 3'])75 def test_skipping_decorators(self):76 op_table = ((unittest.skipUnless, False, True),77 (unittest.skipIf, True, False))78 for deco, do_skip, dont_skip in op_table:79 class Foo(unittest.TestCase):80 def defaultTestResult(self):81 return LoggingResult(events)82 @deco(do_skip, "testing")83 def test_skip(self): pass84 @deco(dont_skip, "testing")85 def test_dont_skip(self): pass86 test_do_skip = Foo("test_skip")87 test_dont_skip = Foo("test_dont_skip")88 suite = unittest.TestSuite([test_do_skip, test_dont_skip])89 events = []90 result = LoggingResult(events)91 self.assertIs(suite.run(result), result)92 self.assertEqual(len(result.skipped), 1)93 expected = ['startTest', 'addSkip', 'stopTest',94 'startTest', 'addSuccess', 'stopTest']95 self.assertEqual(events, expected)96 self.assertEqual(result.testsRun, 2)97 self.assertEqual(result.skipped, [(test_do_skip, "testing")])98 self.assertTrue(result.wasSuccessful())99 events = []100 result = test_do_skip.run()101 self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',102 'stopTest', 'stopTestRun'])103 self.assertEqual(result.skipped, [(test_do_skip, "testing")])104 events = []105 result = test_dont_skip.run()106 self.assertEqual(events, ['startTestRun', 'startTest', 'addSuccess',107 'stopTest', 'stopTestRun'])108 self.assertEqual(result.skipped, [])109 def test_skip_class(self):110 @unittest.skip("testing")111 class Foo(unittest.TestCase):112 def defaultTestResult(self):113 return LoggingResult(events)114 def test_1(self):115 record.append(1)116 events = []117 record = []118 result = LoggingResult(events)119 test = Foo("test_1")120 suite = unittest.TestSuite([test])121 self.assertIs(suite.run(result), result)122 self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])123 self.assertEqual(result.skipped, [(test, "testing")])124 self.assertEqual(record, [])125 events = []126 result = test.run()127 self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',128 'stopTest', 'stopTestRun'])129 self.assertEqual(result.skipped, [(test, "testing")])130 self.assertEqual(record, [])131 def test_skip_non_unittest_class(self):132 @unittest.skip("testing")133 class Mixin:134 def test_1(self):135 record.append(1)136 class Foo(Mixin, unittest.TestCase):137 pass138 record = []139 result = unittest.TestResult()140 test = Foo("test_1")141 suite = unittest.TestSuite([test])142 self.assertIs(suite.run(result), result)143 self.assertEqual(result.skipped, [(test, "testing")])144 self.assertEqual(record, [])145 def test_skip_in_setup(self):146 class Foo(unittest.TestCase):147 def setUp(self):148 self.skipTest("skip")149 def test_skip_me(self):150 self.fail("shouldn't come here")151 events = []152 result = LoggingResult(events)153 test = Foo("test_skip_me")154 self.assertIs(test.run(result), result)155 self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])156 self.assertEqual(result.skipped, [(test, "skip")])157 def test_skip_in_cleanup(self):158 class Foo(unittest.TestCase):159 def test_skip_me(self):160 pass161 def tearDown(self):162 self.skipTest("skip")163 events = []164 result = LoggingResult(events)165 test = Foo("test_skip_me")166 self.assertIs(test.run(result), result)167 self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])168 self.assertEqual(result.skipped, [(test, "skip")])169 def test_failure_and_skip_in_cleanup(self):170 class Foo(unittest.TestCase):171 def test_skip_me(self):172 self.fail("fail")173 def tearDown(self):174 self.skipTest("skip")175 events = []176 result = LoggingResult(events)177 test = Foo("test_skip_me")178 self.assertIs(test.run(result), result)179 self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest'])180 self.assertEqual(result.skipped, [(test, "skip")])181 def test_skipping_and_fail_in_cleanup(self):182 class Foo(unittest.TestCase):183 def test_skip_me(self):184 self.skipTest("skip")185 def tearDown(self):186 self.fail("fail")187 events = []188 result = LoggingResult(events)189 test = Foo("test_skip_me")190 self.assertIs(test.run(result), result)191 self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest'])192 self.assertEqual(result.skipped, [(test, "skip")])193 def test_expected_failure(self):194 class Foo(unittest.TestCase):195 @unittest.expectedFailure196 def test_die(self):197 self.fail("help me!")198 events = []199 result = LoggingResult(events)200 test = Foo("test_die")201 self.assertIs(test.run(result), result)202 self.assertEqual(events,203 ['startTest', 'addExpectedFailure', 'stopTest'])204 self.assertFalse(result.failures)205 self.assertEqual(result.expectedFailures[0][0], test)206 self.assertFalse(result.unexpectedSuccesses)207 self.assertTrue(result.wasSuccessful())208 def test_expected_failure_with_wrapped_class(self):209 @unittest.expectedFailure210 class Foo(unittest.TestCase):211 def test_1(self):212 self.assertTrue(False)213 events = []214 result = LoggingResult(events)215 test = Foo("test_1")216 self.assertIs(test.run(result), result)217 self.assertEqual(events,218 ['startTest', 'addExpectedFailure', 'stopTest'])219 self.assertFalse(result.failures)220 self.assertEqual(result.expectedFailures[0][0], test)221 self.assertFalse(result.unexpectedSuccesses)222 self.assertTrue(result.wasSuccessful())223 def test_expected_failure_with_wrapped_subclass(self):224 class Foo(unittest.TestCase):225 def test_1(self):226 self.assertTrue(False)227 @unittest.expectedFailure228 class Bar(Foo):229 pass230 events = []231 result = LoggingResult(events)232 test = Bar("test_1")233 self.assertIs(test.run(result), result)234 self.assertEqual(events,235 ['startTest', 'addExpectedFailure', 'stopTest'])236 self.assertFalse(result.failures)237 self.assertEqual(result.expectedFailures[0][0], test)238 self.assertFalse(result.unexpectedSuccesses)239 self.assertTrue(result.wasSuccessful())240 def test_expected_failure_subtests(self):241 # A failure in any subtest counts as the expected failure of the242 # whole test.243 class Foo(unittest.TestCase):244 @unittest.expectedFailure245 def test_die(self):246 with self.subTest():247 # This one succeeds248 pass249 with self.subTest():250 self.fail("help me!")251 with self.subTest():252 # This one doesn't get executed253 self.fail("shouldn't come here")254 events = []255 result = LoggingResult(events)256 test = Foo("test_die")257 self.assertIs(test.run(result), result)258 self.assertEqual(events,259 ['startTest', 'addSubTestSuccess',260 'addExpectedFailure', 'stopTest'])261 self.assertFalse(result.failures)262 self.assertEqual(len(result.expectedFailures), 1)263 self.assertIs(result.expectedFailures[0][0], test)264 self.assertFalse(result.unexpectedSuccesses)265 self.assertTrue(result.wasSuccessful())266 def test_expected_failure_and_fail_in_cleanup(self):267 class Foo(unittest.TestCase):268 @unittest.expectedFailure269 def test_die(self):270 self.fail("help me!")271 def tearDown(self):272 self.fail("bad tearDown")273 events = []274 result = LoggingResult(events)275 test = Foo("test_die")276 self.assertIs(test.run(result), result)277 self.assertEqual(events,278 ['startTest', 'addFailure', 'stopTest'])279 self.assertEqual(len(result.failures), 1)280 self.assertIn('AssertionError: bad tearDown', result.failures[0][1])281 self.assertFalse(result.expectedFailures)282 self.assertFalse(result.unexpectedSuccesses)283 self.assertFalse(result.wasSuccessful())284 def test_expected_failure_and_skip_in_cleanup(self):285 class Foo(unittest.TestCase):286 @unittest.expectedFailure287 def test_die(self):288 self.fail("help me!")289 def tearDown(self):290 self.skipTest("skip")291 events = []292 result = LoggingResult(events)293 test = Foo("test_die")294 self.assertIs(test.run(result), result)295 self.assertEqual(events,296 ['startTest', 'addSkip', 'stopTest'])297 self.assertFalse(result.failures)298 self.assertFalse(result.expectedFailures)299 self.assertFalse(result.unexpectedSuccesses)300 self.assertEqual(result.skipped, [(test, "skip")])301 self.assertTrue(result.wasSuccessful())302 def test_unexpected_success(self):303 class Foo(unittest.TestCase):304 @unittest.expectedFailure305 def test_die(self):306 pass307 events = []308 result = LoggingResult(events)309 test = Foo("test_die")310 self.assertIs(test.run(result), result)311 self.assertEqual(events,312 ['startTest', 'addUnexpectedSuccess', 'stopTest'])313 self.assertFalse(result.failures)314 self.assertFalse(result.expectedFailures)315 self.assertEqual(result.unexpectedSuccesses, [test])316 self.assertFalse(result.wasSuccessful())317 def test_unexpected_success_subtests(self):318 # Success in all subtests counts as the unexpected success of319 # the whole test.320 class Foo(unittest.TestCase):321 @unittest.expectedFailure322 def test_die(self):323 with self.subTest():324 # This one succeeds325 pass326 with self.subTest():327 # So does this one328 pass329 events = []330 result = LoggingResult(events)331 test = Foo("test_die")332 self.assertIs(test.run(result), result)333 self.assertEqual(events,334 ['startTest',335 'addSubTestSuccess', 'addSubTestSuccess',336 'addUnexpectedSuccess', 'stopTest'])337 self.assertFalse(result.failures)338 self.assertFalse(result.expectedFailures)339 self.assertEqual(result.unexpectedSuccesses, [test])340 self.assertFalse(result.wasSuccessful())341 def test_unexpected_success_and_fail_in_cleanup(self):342 class Foo(unittest.TestCase):343 @unittest.expectedFailure344 def test_die(self):345 pass346 def tearDown(self):347 self.fail("bad tearDown")348 events = []349 result = LoggingResult(events)350 test = Foo("test_die")351 self.assertIs(test.run(result), result)352 self.assertEqual(events,353 ['startTest', 'addFailure', 'stopTest'])354 self.assertEqual(len(result.failures), 1)355 self.assertIn('AssertionError: bad tearDown', result.failures[0][1])356 self.assertFalse(result.expectedFailures)357 self.assertFalse(result.unexpectedSuccesses)358 self.assertFalse(result.wasSuccessful())359 def test_unexpected_success_and_skip_in_cleanup(self):360 class Foo(unittest.TestCase):361 @unittest.expectedFailure362 def test_die(self):363 pass364 def tearDown(self):365 self.skipTest("skip")366 events = []367 result = LoggingResult(events)368 test = Foo("test_die")369 self.assertIs(test.run(result), result)370 self.assertEqual(events,371 ['startTest', 'addSkip', 'stopTest'])372 self.assertFalse(result.failures)373 self.assertFalse(result.expectedFailures)374 self.assertFalse(result.unexpectedSuccesses)375 self.assertEqual(result.skipped, [(test, "skip")])376 self.assertTrue(result.wasSuccessful())377 def test_skip_doesnt_run_setup(self):378 class Foo(unittest.TestCase):379 wasSetUp = False380 wasTornDown = False381 def setUp(self):382 Foo.wasSetUp = True383 def tornDown(self):384 Foo.wasTornDown = True385 @unittest.skip('testing')386 def test_1(self):387 pass388 result = unittest.TestResult()389 test = Foo("test_1")390 suite = unittest.TestSuite([test])391 self.assertIs(suite.run(result), result)392 self.assertEqual(result.skipped, [(test, "testing")])393 self.assertFalse(Foo.wasSetUp)394 self.assertFalse(Foo.wasTornDown)395 def test_decorated_skip(self):396 def decorator(func):397 def inner(*a):398 return func(*a)399 return inner400 class Foo(unittest.TestCase):401 @decorator402 @unittest.skip('testing')403 def test_1(self):404 pass405 result = unittest.TestResult()406 test = Foo("test_1")407 suite = unittest.TestSuite([test])408 self.assertIs(suite.run(result), result)409 self.assertEqual(result.skipped, [(test, "testing")])410 def test_skip_without_reason(self):411 class Foo(unittest.TestCase):412 @unittest.skip413 def test_1(self):414 pass415 result = unittest.TestResult()416 test = Foo("test_1")417 suite = unittest.TestSuite([test])418 self.assertIs(suite.run(result), result)419 self.assertEqual(result.skipped, [(test, "")])420 def test_debug_skipping(self):421 class Foo(unittest.TestCase):422 def setUp(self):423 events.append("setUp")424 def tearDown(self):425 events.append("tearDown")426 def test1(self):427 self.skipTest('skipping exception')428 events.append("test1")429 @unittest.skip("skipping decorator")430 def test2(self):431 events.append("test2")432 events = []433 test = Foo("test1")434 with self.assertRaises(unittest.SkipTest) as cm:435 test.debug()436 self.assertIn("skipping exception", str(cm.exception))437 self.assertEqual(events, ["setUp"])438 events = []439 test = Foo("test2")440 with self.assertRaises(unittest.SkipTest) as cm:441 test.debug()442 self.assertIn("skipping decorator", str(cm.exception))443 self.assertEqual(events, [])444 def test_debug_skipping_class(self):445 @unittest.skip("testing")446 class Foo(unittest.TestCase):447 def setUp(self):448 events.append("setUp")449 def tearDown(self):450 events.append("tearDown")451 def test(self):452 events.append("test")453 events = []454 test = Foo("test")455 with self.assertRaises(unittest.SkipTest) as cm:456 test.debug()457 self.assertIn("testing", str(cm.exception))458 self.assertEqual(events, [])459 def test_debug_skipping_subtests(self):460 class Foo(unittest.TestCase):461 def setUp(self):462 events.append("setUp")463 def tearDown(self):464 events.append("tearDown")465 def test(self):466 with self.subTest(a=1):467 events.append('subtest')468 self.skipTest("skip subtest")469 events.append('end subtest')470 events.append('end test')471 events = []472 result = LoggingResult(events)473 test = Foo("test")474 with self.assertRaises(unittest.SkipTest) as cm:475 test.debug()476 self.assertIn("skip subtest", str(cm.exception))477 self.assertEqual(events, ['setUp', 'subtest'])478if __name__ == "__main__":...
Check out the latest blogs from LambdaTest on this topic:
It is essential for a team, when speaking about test automation, to take the time needed to think, analyze and try what will be the best tool, framework, and language that suits your team’s needs.
In this digital era, Continuous Integration and Continuous Deployment is closely aligned with software development and agile methodologies. Organizations deploy latest versions of software products every minute to ensure maximum competitive edge.
Test Coverage and Code coverage are the most popular methodologies for measuring the effectiveness of the code. Though these terms are sometimes used interchangeably since their underlying principles are the same. But they are not as similar as you may think. Many times, I have noticed the testing team and development team being confused over the use of these two terminologies. Which is why I thought of coming up with an article to talk about the differences between code coverage and test coverage in detail.
When someone develops a website, going live it’s like a dream come true. I have also seen one of my friends so excited as he was just about to launch his website. When he finally hit the green button, some unusual trend came suddenly into his notice. After going into details, he found out that the website has a very high bounce rate on Mobile devices. Thanks to Google Analytics, he was able to figure that out.
With an average global salary of $39k, PHP is one of the most popular programming languages in the developer community. It’s the language behind the most popular CMS, WordPress. It is in-use by 79% of total websites globally, including the most used social network- Facebook, the largest digital encyclopedia – Wikipedia, China’s news giant Xinhuanet, and Russia’s social network VK.com.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!