PageRenderTime 276ms CodeModel.GetById 258ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/regressiontests/test_runner/tests.py

https://code.google.com/p/mango-py/
Python | 120 lines | 91 code | 22 blank | 7 comment | 3 complexity | 2090879282edab3543ae017670acf688 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. """
  2. Tests for django test runner
  3. """
  4. import StringIO
  5. from django.core.exceptions import ImproperlyConfigured
  6. from django.test import simple
  7. from django.utils import unittest
  8. class DjangoTestRunnerTests(unittest.TestCase):
  9. def test_failfast(self):
  10. class MockTestOne(unittest.TestCase):
  11. def runTest(self):
  12. assert False
  13. class MockTestTwo(unittest.TestCase):
  14. def runTest(self):
  15. assert False
  16. suite = unittest.TestSuite([MockTestOne(), MockTestTwo()])
  17. mock_stream = StringIO.StringIO()
  18. dtr = simple.DjangoTestRunner(verbosity=0, failfast=False, stream=mock_stream)
  19. result = dtr.run(suite)
  20. self.assertEqual(2, result.testsRun)
  21. self.assertEqual(2, len(result.failures))
  22. dtr = simple.DjangoTestRunner(verbosity=0, failfast=True, stream=mock_stream)
  23. result = dtr.run(suite)
  24. self.assertEqual(1, result.testsRun)
  25. self.assertEqual(1, len(result.failures))
  26. class DependencyOrderingTests(unittest.TestCase):
  27. def test_simple_dependencies(self):
  28. raw = [
  29. ('s1', ('s1_db', ['alpha'])),
  30. ('s2', ('s2_db', ['bravo'])),
  31. ('s3', ('s3_db', ['charlie'])),
  32. ]
  33. dependencies = {
  34. 'alpha': ['charlie'],
  35. 'bravo': ['charlie'],
  36. }
  37. ordered = simple.dependency_ordered(raw, dependencies=dependencies)
  38. ordered_sigs = [sig for sig,value in ordered]
  39. self.assertIn('s1', ordered_sigs)
  40. self.assertIn('s2', ordered_sigs)
  41. self.assertIn('s3', ordered_sigs)
  42. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))
  43. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))
  44. def test_chained_dependencies(self):
  45. raw = [
  46. ('s1', ('s1_db', ['alpha'])),
  47. ('s2', ('s2_db', ['bravo'])),
  48. ('s3', ('s3_db', ['charlie'])),
  49. ]
  50. dependencies = {
  51. 'alpha': ['bravo'],
  52. 'bravo': ['charlie'],
  53. }
  54. ordered = simple.dependency_ordered(raw, dependencies=dependencies)
  55. ordered_sigs = [sig for sig,value in ordered]
  56. self.assertIn('s1', ordered_sigs)
  57. self.assertIn('s2', ordered_sigs)
  58. self.assertIn('s3', ordered_sigs)
  59. # Explicit dependencies
  60. self.assertLess(ordered_sigs.index('s2'), ordered_sigs.index('s1'))
  61. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))
  62. # Implied dependencies
  63. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))
  64. def test_multiple_dependencies(self):
  65. raw = [
  66. ('s1', ('s1_db', ['alpha'])),
  67. ('s2', ('s2_db', ['bravo'])),
  68. ('s3', ('s3_db', ['charlie'])),
  69. ('s4', ('s4_db', ['delta'])),
  70. ]
  71. dependencies = {
  72. 'alpha': ['bravo','delta'],
  73. 'bravo': ['charlie'],
  74. 'delta': ['charlie'],
  75. }
  76. ordered = simple.dependency_ordered(raw, dependencies=dependencies)
  77. ordered_sigs = [sig for sig,aliases in ordered]
  78. self.assertIn('s1', ordered_sigs)
  79. self.assertIn('s2', ordered_sigs)
  80. self.assertIn('s3', ordered_sigs)
  81. self.assertIn('s4', ordered_sigs)
  82. # Explicit dependencies
  83. self.assertLess(ordered_sigs.index('s2'), ordered_sigs.index('s1'))
  84. self.assertLess(ordered_sigs.index('s4'), ordered_sigs.index('s1'))
  85. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))
  86. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s4'))
  87. # Implicit dependencies
  88. self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))
  89. def test_circular_dependencies(self):
  90. raw = [
  91. ('s1', ('s1_db', ['alpha'])),
  92. ('s2', ('s2_db', ['bravo'])),
  93. ]
  94. dependencies = {
  95. 'bravo': ['alpha'],
  96. 'alpha': ['bravo'],
  97. }
  98. self.assertRaises(ImproperlyConfigured, simple.dependency_ordered, raw, dependencies=dependencies)