keywords_test.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # Copyright David Abrahams 2004. Distributed under the Boost
  2. # Software License, Version 1.0. (See accompanying
  3. # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. '''
  5. >>> from keywords import *
  6. >>> f = Foo()
  7. >>> f.a(), f.b(), f.n()
  8. (0, 0.0, '')
  9. >>> f = Foo(1)
  10. >>> f.a(), f.b(), f.n()
  11. (1, 0.0, '')
  12. >>> f = Foo(1,1.0)
  13. >>> f.a(), f.b(), f.n()
  14. (1, 1.0, '')
  15. >>> f = Foo(1,1.0,"1")
  16. >>> f.a(), f.b(), f.n()
  17. (1, 1.0, '1')
  18. >>> f = Foo(a=1)
  19. >>> f.a(), f.b(), f.n()
  20. (1, 0.0, '')
  21. >>> f = Foo(b=1)
  22. >>> f.a(), f.b(), f.n()
  23. (0, 1.0, '')
  24. >>> f = Foo(n="1")
  25. >>> f.a(), f.b(), f.n()
  26. (0, 0.0, '1')
  27. >>> f = Foo(1,n="1")
  28. >>> f.a(), f.b(), f.n()
  29. (1, 0.0, '1')
  30. >>> f.set()
  31. >>> f.a(), f.b(), f.n()
  32. (0, 0.0, '')
  33. >>> f.set(1)
  34. >>> f.a(), f.b(), f.n()
  35. (1, 0.0, '')
  36. >>> f.set(1,1.0)
  37. >>> f.a(), f.b(), f.n()
  38. (1, 1.0, '')
  39. >>> f.set(1,1.0,"1")
  40. >>> f.a(), f.b(), f.n()
  41. (1, 1.0, '1')
  42. >>> f.set(a=1)
  43. >>> f.a(), f.b(), f.n()
  44. (1, 0.0, '')
  45. >>> f.set(b=1)
  46. >>> f.a(), f.b(), f.n()
  47. (0, 1.0, '')
  48. >>> f.set(n="1")
  49. >>> f.a(), f.b(), f.n()
  50. (0, 0.0, '1')
  51. >>> f.set(1,n="1")
  52. >>> f.a(), f.b(), f.n()
  53. (1, 0.0, '1')
  54. >>> f.set2(b=2.0,n="2",a=2)
  55. >>> f.a(), f.b(), f.n()
  56. (2, 2.0, '2')
  57. # lets see how badly we've broken the 'regular' functions
  58. >>> f = Bar()
  59. >>> f.a(), f.b(), f.n()
  60. (0, 0.0, '')
  61. >>> f = Bar(1)
  62. >>> f.a(), f.b(), f.n()
  63. (1, 0.0, '')
  64. >>> f = Bar(1,1.0)
  65. >>> f.a(), f.b(), f.n()
  66. (1, 1.0, '')
  67. >>> f = Bar(1,1.0,"1")
  68. >>> f.a(), f.b(), f.n()
  69. (1, 1.0, '1')
  70. >>> f.set()
  71. >>> f.a(), f.b(), f.n()
  72. (0, 0.0, '')
  73. >>> f.set(1)
  74. >>> f.a(), f.b(), f.n()
  75. (1, 0.0, '')
  76. >>> f.set(1,1.0)
  77. >>> f.a(), f.b(), f.n()
  78. (1, 1.0, '')
  79. >>> f.set(1,1.0,"1")
  80. >>> f.a(), f.b(), f.n()
  81. (1, 1.0, '1')
  82. >>> f.set2.__doc__.splitlines()[1]
  83. 'set2( (Bar)arg1 [, (int)arg2 [, (float)arg3 [, (str)arg4]]]) -> None :'
  84. >>> f.set2.__doc__.splitlines()[2]
  85. " set2's docstring"
  86. '''
  87. def run(args = None):
  88. import sys
  89. import doctest
  90. if args is not None:
  91. sys.argv = args
  92. return doctest.testmod(sys.modules.get(__name__))
  93. if __name__ == '__main__':
  94. print("running...")
  95. import sys
  96. status = run()[0]
  97. if (status == 0): print("Done.")
  98. sys.exit(status)