@@ -2772,6 +2772,46 @@ def get_parser(self, required): |
2772 | 2772 | -c c help |
2773 | 2773 | ''' |
2774 | 2774 |
|
| 2775 | +class TestMutuallyExclusiveNested(MEMixin, TestCase): |
| 2776 | + |
| 2777 | + def get_parser(self, required): |
| 2778 | + parser = ErrorRaisingArgumentParser(prog='PROG') |
| 2779 | + group = parser.add_mutually_exclusive_group(required=required) |
| 2780 | + group.add_argument('-a') |
| 2781 | + group.add_argument('-b') |
| 2782 | + group2 = group.add_mutually_exclusive_group(required=required) |
| 2783 | + group2.add_argument('-c') |
| 2784 | + group2.add_argument('-d') |
| 2785 | + group3 = group2.add_mutually_exclusive_group(required=required) |
| 2786 | + group3.add_argument('-e') |
| 2787 | + group3.add_argument('-f') |
| 2788 | + return parser |
| 2789 | + |
| 2790 | + usage_when_not_required = '''\ |
| 2791 | + usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]] |
| 2792 | + ''' |
| 2793 | + usage_when_required = '''\ |
| 2794 | + usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F))) |
| 2795 | + ''' |
| 2796 | + |
| 2797 | + help = '''\ |
| 2798 | +
|
| 2799 | + optional arguments: |
| 2800 | + -h, --help show this help message and exit |
| 2801 | + -a A |
| 2802 | + -b B |
| 2803 | + -c C |
| 2804 | + -d D |
| 2805 | + -e E |
| 2806 | + -f F |
| 2807 | + ''' |
| 2808 | + |
| 2809 | + # We are only interested in testing the behavior of format_usage(). |
| 2810 | + test_failures_when_not_required = None |
| 2811 | + test_failures_when_required = None |
| 2812 | + test_successes_when_not_required = None |
| 2813 | + test_successes_when_required = None |
| 2814 | + |
2775 | 2815 | # ================================================= |
2776 | 2816 | # Mutually exclusive group in parent parser tests |
2777 | 2817 | # ================================================= |
|