@@ -719,36 +719,51 @@ above.
719
719
An example's doctest directives modify doctest's behavior for that single
720
720
example. Use ``+ `` to enable the named behavior, or ``- `` to disable it.
721
721
722
- For example, this test passes::
722
+ For example, this test passes:
723
723
724
- >>> print(list(range(20))) # doctest: +NORMALIZE_WHITESPACE
724
+ .. doctest ::
725
+ :no-trim-doctest-flags:
726
+
727
+ >>> print (list (range (20 ))) # doctest: +NORMALIZE_WHITESPACE
725
728
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
726
729
10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
727
730
728
731
Without the directive it would fail, both because the actual output doesn't have
729
732
two blanks before the single-digit list elements, and because the actual output
730
733
is on a single line. This test also passes, and also requires a directive to do
731
- so::
734
+ so:
735
+
736
+ .. doctest ::
737
+ :no-trim-doctest-flags:
732
738
733
- >>> print(list(range(20))) # doctest: +ELLIPSIS
739
+ >>> print (list (range (20 ))) # doctest: +ELLIPSIS
734
740
[0, 1, ..., 18, 19]
735
741
736
742
Multiple directives can be used on a single physical line, separated by
737
- commas::
743
+ commas:
738
744
739
- >>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
745
+ .. doctest ::
746
+ :no-trim-doctest-flags:
747
+
748
+ >>> print (list (range (20 ))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
740
749
[0, 1, ..., 18, 19]
741
750
742
751
If multiple directive comments are used for a single example, then they are
743
- combined::
752
+ combined:
753
+
754
+ .. doctest ::
755
+ :no-trim-doctest-flags:
744
756
745
- >>> print(list(range(20))) # doctest: +ELLIPSIS
746
- ... # doctest: +NORMALIZE_WHITESPACE
757
+ >>> print (list (range (20 ))) # doctest: +ELLIPSIS
758
+ ... # doctest: +NORMALIZE_WHITESPACE
747
759
[0, 1, ..., 18, 19]
748
760
749
761
As the previous example shows, you can add ``... `` lines to your example
750
762
containing only directives. This can be useful when an example is too long for
751
- a directive to comfortably fit on the same line::
763
+ a directive to comfortably fit on the same line:
764
+
765
+ .. doctest ::
766
+ :no-trim-doctest-flags:
752
767
753
768
>>> print (list (range (5 )) + list (range (10 , 20 )) + list (range (30 , 40 )))
754
769
... # doctest: +ELLIPSIS
@@ -793,18 +808,23 @@ instead. Another is to do ::
793
808
794
809
There are others, but you get the idea.
795
810
796
- Another bad idea is to print things that embed an object address, like ::
811
+ Another bad idea is to print things that embed an object address, like
812
+
813
+ .. doctest ::
797
814
798
- >>> id(1.0) # certain to fail some of the time
815
+ >>> id (1.0 ) # certain to fail some of the time # doctest: +SKIP
799
816
7948648
800
817
>>> class C : pass
801
- >>> C() # the default repr() for instances embeds an address
802
- <__main__.C instance at 0x00AC18F0>
818
+ >>> C() # the default repr() for instances embeds an address # doctest: +SKIP
819
+ <C object at 0x00AC18F0>
820
+
821
+ The :const: `ELLIPSIS ` directive gives a nice approach for the last example:
803
822
804
- The :const: `ELLIPSIS ` directive gives a nice approach for the last example::
823
+ .. doctest ::
824
+ :no-trim-doctest-flags:
805
825
806
- >>> C() # doctest: +ELLIPSIS
807
- <__main__.C instance at 0x...>
826
+ >>> C() # doctest: +ELLIPSIS
827
+ <C object at 0x...>
808
828
809
829
Floating-point numbers are also subject to small output variations across
810
830
platforms, because Python defers to the platform C library for float formatting,
0 commit comments