Guest User

Untitled

a guest
Mar 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. import builtins
  2. import unittest
  3.  
  4.  
  5. def main():
  6. ''' Main app '''
  7. range_start = int(input())
  8. range_stop = int(input())
  9. for i in range(range_start, range_stop):
  10. print(i)
  11.  
  12.  
  13. class TestMethods(unittest.TestCase):
  14.  
  15. def mock_print(self, message, *args, **kwargs):
  16. '''
  17. Alters built-in input() function.
  18. Gathers output to list buffer.
  19. '''
  20. self.output_buffer.append(message)
  21.  
  22. def mock_input(self, *args, **kwargs):
  23. '''
  24. Alters built-in print() function.
  25. Injects input data from list buffer.
  26. '''
  27. return self.input_data.pop()
  28.  
  29. def set_input(self, input_data):
  30. '''Supplies data for mock_input().'''
  31. self.input_data = input_data
  32. self.input_data.reverse()
  33.  
  34. def get_output(self):
  35. '''Returns data gathered by mock_print().'''
  36. output = self.output_buffer
  37. self.output_buffer = []
  38. return output
  39.  
  40. def setUp(self):
  41. # let's store original functions somewhere
  42. self.original_input = builtins.input
  43. self.original_print = builtins.print
  44. # declate a buffer for output data
  45. self.output_buffer = []
  46. # we are replacing built-in function input() and output()
  47. builtins.input = self.mock_input
  48. builtins.print = self.mock_print
  49.  
  50. def test_typical_case(self):
  51. # set test data
  52. input_data = ['2', '5']
  53. output_data = [2, 3, 4]
  54. # set desired input
  55. self.set_input(input_data)
  56. # run a function
  57. main()
  58. # assert output
  59. self.assertListEqual(self.get_output(), output_data)
  60.  
  61. def test_empty(self):
  62. # set test data
  63. input_data = ['1000', '0']
  64. output_data = []
  65. # set desired input
  66. self.set_input(input_data)
  67. # run a function
  68. main()
  69. # assert output
  70. self.assertListEqual(self.get_output(), output_data)
  71.  
  72. def tearDown(self):
  73. # let's restore original function
  74. builtins.input = self.original_input
  75. builtins.print = self.original_print
  76.  
  77.  
  78. if __name__ == '__main__':
  79. unittest.main()
Add Comment
Please, Sign In to add comment