+
    Bi._                        R t ^ RIt^ RIt^ RIt^ RIHt R t]! ]P                  ]P                  4      w  t	t
t]! ]P                  ]P                  4      w  tttR]	n        R]
n        R]n        ]R8X  d   ]P"                  ! 4        R# R# )zUnit tests for abc.py.N)
isabstractc                    a a  ! V 3R  lR\         P                  4      p ! V V3R lR\         P                  4      p ! V 3R lR\         P                  4      pW#V3# )c                   F   <a  ] tR t^t o V3R ltV3R ltV3R ltRtV tR# )#test_factory.<locals>.TestLegacyAPIc                |  < \         P                  R  4       pV P                  VP                  4       R pV P	                  VR4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  V! 4       P                  ^4       V P                  \        VP                  RR4      4       R	# )
c                     R # N selfs   &$/usr/lib/python3.14/test/test_abc.pyfooMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.foo           c                     R # r   r	   r
   s   &r   barMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.bar       4r   __isabstractmethod__c                   D   a  ] tR t^t o ]P
                  R 4       tRtV tR# )Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Cc                    ^#    r	   r
   s   &r   r   Otest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.C.foo   s    &'r   r	   N)	__name__
__module____qualname____firstlineno__abcabstractpropertyr   __static_attributes____classdictcell____classdict__s   @r   Cr      s     %%' &'r   r&   	metaclassc                   <   a a ] tR t^t o]V 3R l4       tRtVtV ;t# )Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Dc                   < \         SV `  # r   superr   r   	__class__s   &r   r   Otest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.D.foo       &+gk1r   r	   )	r   r   r   r   propertyr   r"   r#   __classcell__r/   r%   s   @@r   Dr*      s     1 11r   r5   FN)r    r!   
assertTruer   assertNotHasAttrassertRaises	TypeErrorassertEqualr   assertFalsegetattrr   r   r   r&   r5   abc_ABCMetas   &    r   test_abstractproperty_basics@test_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics   s    !! "OOC445!!#'=>(k ( i+2A 2 QSWWa(WQUU,BEJKr   c                  < \         P                  R  4       pV P                  VP                  4       \        R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       R4       V P                  V! 4       P                  4       R4       R	# )
c                     R # r   r	   clss   &r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.foo$       r   c                     R # r   r	   rC   s   &r   r   Ptest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.bar'   rF   r   r   Fc                   D   a  ] tR t^+t o ]P
                  R 4       tRtV tR# )Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Cc                    V P                   # r   r   rC   s   &r   r   Rtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.C.foo,   s    %(\\1r   r	   N)	r   r   r   r   r    abstractclassmethodr   r"   r#   r$   s   @r   r&   rJ   +   s     ((1 )1r   r&   r'   c                   <   a a ] tR t^/t o]V 3R l4       tRtVtV ;t# )Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Dc                    < \         SV `  4       # r   r,   rD   r/   s   &r   r   Rtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.D.foo0       %*W[]2r   r	   	r   r   r   r   classmethodr   r"   r#   r3   r4   s   @@r   r5   rP   /        2 22r   r5   N)r    rN   r6   r   rV   r;   r<   r8   r9   r:   r   r=   s   &    r   test_abstractclassmethod_basicsCtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics#   s    $$ %OOC445 WS*@%HI2k 2 i+3A 3 QUUWc*QSWWY,r   c                  < \         P                  R  4       pV P                  VP                  4       \        R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       ^4       V P                  V! 4       P                  4       ^4       R	# )
c                      R # r   r	   r	   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.foo6       r   c                      R # r   r	   r	   r   r   r   Qtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.bar9   r]   r   r   Fc                   D   a  ] tR t^=t o ]P
                  R 4       tRtV tR# )Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Cc                     ^# r   r	   r	   r   r   r   Stest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.C.foo>       "#r   r	   N)	r   r   r   r   r    abstractstaticmethodr   r"   r#   r$   s   @r   r&   ra   =   s     ))# *#r   r&   r'   c                   0   a  ] tR t^At o ]R 4       tRtV tR# )Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Dc                     ^#    r	   r	   r   r   r   Stest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.D.fooB   rd   r   r	   Nr   r   r   r   staticmethodr   r"   r#   r$   s   @r   r5   rg   A        # #r   r5   N)r    re   r6   r   rm   r;   r<   r8   r9   r:   r   r=   s   &    r    test_abstractstaticmethod_basicsDtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics5   s    %% &OOC445 WS*@%HI$k $ i+$A $ QUUWa(QSWWY*r   r	   N)	r   r   r   r   r?   rX   ro   r"   r#   r%   r>   s   @r   TestLegacyAPIr      s     	L"	-$	+ 	+r   rr   c                   z  <a  ] tR t^Ht o R tR tV3R ltV3R ltV3R ltV3R lt	V3R lt
V3R ltV3R	 ltV3R
 ltV3R ltV3R ltV3R ltVV3R ltV3R ltV3R ltV3R ltV3R ltV3R ltR tV3R ltR tV3R ltV3R ltV3R ltV3R ltV3R ltR tV3R lt V3R lt!V3R lt"R t#V t$R!# )"test_factory.<locals>.TestABCc                    ! R  R\         P                  4      pV P                  \        V4      \         P                  4       V P                  \        V4        ! R RV4      pV P                  VP                  4       R4       R# )c                   N   a  ] tR t^Lt o ]]P                  R 4       4       tRtV t	R# )8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Cc                    V P                   # r   rL   rC   s   &r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.C.fooM       %(\\1r   r	   N
r   r   r   r   rV   r    abstractmethodr   r"   r#   r$   s   @r   r&   rw   L   !     ##1 $ 1r   r&   c                   <   a a ] tR t^Rt o]V 3R l4       tRtVtV ;t# )8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Dc                    < \         SV `  4       # r   r,   rR   s   &r   r   <test_factory.<locals>.TestABC.test_ABC_helper.<locals>.D.fooS   rT   r   r	   rU   r4   s   @@r   r5   r   R   rW   r   r5   N)r    ABCr:   typeABCMetar8   r9   r   )r   r&   r5   s   &  r   test_ABC_helper-test_factory.<locals>.TestABC.test_ABC_helperJ   s`    2CGG 2 T!Wckk2i+3A 3 QUUWc*r   c                    \         P                  R  4       pV P                  VP                  4       R pV P	                  VR4       R# )c                     R # r   r	   r
   s   &r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.fooX   r   r   c                     R # r   r	   r
   s   &r   r   Etest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.bar[   r   r   r   N)r    r|   r6   r   r7   )r   r   r   s   &  r   test_abstractmethod_basics8test_factory.<locals>.TestABC.test_abstractmethod_basicsW   s<      OOC445!!#'=>r   c                ^  <a \         \        P                  R  4       4       pV P                  VP                  4       R pV P                  \        VRR4      4        ! R RSR7      oV P                  \        S4        ! V3R lRS4      pV P                  V! 4       P                  ^4       R	# )
c                     R # r   r	   r
   s   &r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.foo_   s    r   c                     R # r   r	   r
   s   &r   r   Gtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.barc   r   r   r   Fc                   N   a  ] tR t^ft o ]]P                  R 4       4       tRtV t	R# )Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Cc                    ^# r   r	   r
   s   &r   r   Itest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.C.foog       &'r   r	   N)
r   r   r   r   r2   r    r|   r   r"   r#   r$   s   @r   r&   r   f   s!     ##' $ 'r   r&   r'   c                   h   <a a ] tR t^kt o ZP                  P
                  V 3R l4       tRtVtV ;t# )Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Dc                   < \         SV `  # r   r,   r.   s   &r   r   Itest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.D.fool   r1   r   r	   	r   r   r   r   r   getterr"   r#   r3   r/   r%   r&   s   @@r   r5   r   k        1 11r   r5   N)r2   r    r|   r6   r   r;   r<   r8   r9   r:   r   )r   r   r   r5   r&   r>   s   &   @r   r?   :test_factory.<locals>.TestABC.test_abstractproperty_basics^   s       OOC445WS*@%HI(k ( i+2A 2 QSWWa(r   c                  < \         \        P                  R  4       4       pV P                  VP                  4       \         R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       R4       V P                  V! 4       P                  4       R4       R	# )
c                     R # r   r	   rC   s   &r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.fooq   s    r   c                     R # r   r	   rC   s   &r   r   Jtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.baru   rF   r   r   Fc                   N   a  ] tR t^yt o ]]P                  R 4       4       tRtV t	R# )Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Cc                    V P                   # r   rL   rC   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.C.fooz   rz   r   r	   Nr{   r$   s   @r   r&   r   y   r}   r   r&   r'   c                   <   a a ] tR t^~t o]V 3R l4       tRtVtV ;t# )Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Dc                    < \         SV `  4       # r   r,   rR   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.D.foo   rT   r   r	   rU   r4   s   @@r   r5   r   ~   rW   r   r5   N)rV   r    r|   r6   r   r;   r<   r8   r9   r:   r   r=   s   &    r   rX   =test_factory.<locals>.TestABC.test_abstractclassmethod_basicsp   s       OOC445 WS*@%HI2k 2 i+3A 3 QUUWc*QSWWY,r   c                  < \         \        P                  R  4       4       pV P                  VP                  4       \         R 4       pV P                  \        VRR4      4        ! R RSR7      pV P                  \        V4        ! R RV4      pV P                  VP                  4       ^4       V P                  V! 4       P                  4       ^4       R	# )
c                      R # r   r	   r	   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.foo   s    r   c                      R # r   r	   r	   r   r   r   Ktest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.bar   r]   r   r   Fc                   N   a  ] tR t^t o ]]P                  R 4       4       tRtV t	R# )Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Cc                     ^# r   r	   r	   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.C.foo   s    "#r   r	   N)
r   r   r   r   rm   r    r|   r   r"   r#   r$   s   @r   r&   r      s!     ### $ #r   r&   r'   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Dc                     ^# ri   r	   r	   r   r   r   Mtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.D.foo   rd   r   r	   Nrl   r$   s   @r   r5   r      rn   r   r5   N)rm   r    r|   r6   r   r;   r<   r8   r9   r:   r   r=   s   &    r   ro   >test_factory.<locals>.TestABC.test_abstractstaticmethod_basics   s       OOC445 WS*@%HI$k $ i+$A $ QUUWa(QSWWY*r   c                P   <  ! R  RSR7      pRpV P                  \        W!4       R# )c                   D   a  ] tR t^t o ]P
                  R 4       tRtV tR# )Ptest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.Cc                    R # r   r	   r
   s   &r   
method_one[test_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.C.method_one       r   r	   N)	r   r   r   r   r    r|   r   r"   r#   r$   s   @r   r&   r           ## $r   r&   r'   zBclass C without an implementation for abstract method 'method_one'NassertRaisesRegexr9   r   r&   msgr>   s   &  r   'test_object_new_with_one_abstractmethodEtest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod   s'    k  XC""9c5r   c                P   <  ! R  RSR7      pRpV P                  \        W!4       R# )c                   h   a  ] tR t^t o ]P
                  R 4       t]P
                  R 4       tRtV t	R# )Rtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.Cc                    R # r   r	   r
   s   &r   r   ]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_one   r   r   c                    R # r   r	   r
   s   &r   
method_two]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_two   r   r   r	   N)
r   r   r   r   r    r|   r   r   r"   r#   r$   s   @r   r&   r      s5     ## $## $r   r&   r'   zQclass C without an implementation for abstract methods 'method_one', 'method_two'Nr   r   s   &  r   )test_object_new_with_many_abstractmethodsGtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods   s'    k  gC""9c5r   c                V  <a \         P                  \         P                  \         P                  \         P                  3 EFc  o ! V3R  lRSR7      pV P                  VP                  R04       V P                  \        V4       V P                  \        V4      4        ! R RV4      pV P                  VP                  R04       V P                  \        V4       V P                  \        V4      4        ! R RV4      pV P                  VP                  \        4       4       V! 4        V P                  \        V4      4        ! V3R lR	V4      pV P                  VP                  R
04       V P                  \        V4       V P                  \        V4      4       EKf  	  R# )c                   :   <a  ] tR t^t o  ZR 4       tR tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Cc                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.foo       #'r   c                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.bar       4r   r	   N)r   r   r   r   r   r   r"   r#   r%   abstractthings   @r   r&   r      s     "' #'''r   r&   r'   r   c                   &   a  ] tR t^t o R tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Dc                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.D.bar   r   r   r	   Nr   r   r   r   r   r"   r#   r$   s   @r   r5   r           ''r   r5   c                   &   a  ] tR t^t o R tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Ec                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.E.foo   r   r   r	   Nr   r   r   r   r   r"   r#   r$   s   @r   Er      r   r   r   c                   4   <a  ] tR t^t o  ZR 4       tRtV tR# )Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Fc                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.F.bar   r   r   r	   Nr   r   s   @r   Fr      s     "' #'r   r   r   N)r    r|   r!   rN   re   r:   __abstractmethods__r8   r9   r6   r   setr;   )r   r&   r5   r   r   r   r>   s   &    @r   test_abstractmethod_integration=test_factory.<locals>.TestABC.test_abstractmethod_integration   s=   "%"4"4c6J6J"%"9"9"%":":"<(+ (   !6!6@!!)Q/
1.( (  !6!6@!!)Q/
1.( (  !6!6>  A/( (   !6!6@!!)Q/
1.3"<r   c                  <aaa  ! R  RSR7      oV P                  \        S4        ! V3R lRS4      oV P                  \        S4        ! V3R lRS4      pV P                  V! 4       P                  ^4        ! R R\        4      oV P                  \
        4      ;_uu_ 4         ! V3R	 lR
S4      pRRR4       R#   + '       g   i     R# ; i)c                      a  ] tR t^t o ]]P                  R 4       4       t]P                  ]P                  R 4       4       tRt	V t
R# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Cc                    ^# r   r	   r
   s   &r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C.foo   r   r   c                    R # r   r	   r   vals   &&r   r   r          $(r   r	   N)r   r   r   r   r2   r    r|   r   setterr"   r#   r$   s   @r   r&   r      sA     ##' $ '##( $ (r   r&   r'   c                   h   <a a ] tR t^t o ZP                  P
                  V 3R l4       tRtVtV ;t# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Dc                   < \         SV `  # r   r,   r.   s   &r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.D.foo   r1   r   r	   r   r   s   @@r   r5   r      r   r   r5   c                   \   <a  ] tR t^t o  ZP                  P
                  R 4       tRtV tR# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Ec                    R # r   r	   r   s   &&r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.E.foo       $(r   r	   Nr   r   r   r   r   r   r"   r#   r%   r5   s   @r   r   r          ( (r   r   c                   *   a  ] tR t^t o R t]tRtV tR# )Stest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBoolc                    \        4       hr   )
ValueErrorr
   s   &r   __bool__\test_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBool.__bool__   s
    $,&r   r	   N)r   r   r   r   r  __len__r"   r#   r$   s   @r   NotBoolr     s     '"r   r  c                   R   <a  ] tR t^t o R t Z! 4       ]n        ]! ]4      tRtV t	R# )Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Fc                    R # r   r	   r
   s   &r   r   Qtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.F.bar   s    r   r	   N)
r   r   r   r   r   r   r2   r   r"   r#   )r%   r  s   @r   r   r     s     /6yC,"3-Cr   r   N)r8   r9   r:   r   objectr  )r   r   r   r&   r5   r  r>   s   &  @@@r   $test_descriptors_with_abstractmethodBtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod   s    )k ) i+2A 2 i+)A ) QSWWa(#& # "":..( ( /...s   &B??C	c                   <aaa  ! V3R  lR4      o ! V3R lRSR7      oV P                  \        S4        ! V3R lRS4      oV P                  \        S4        ! V3R lRS4      pV P                  VP                  P                  4       R	# )
c                   T   <a  ] tR t^t o RR ltV3R ltV3R lt]R 4       tRt	V t
R# )\test_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.DescriptorNc                    Wn         W n        R # r   _fget_fset)r   fgetfsets   &&&r   __init__etest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__init__   s    !%J!%Jr   c                (   < S! WP                   4      # r   r  r   callable
Descriptors   &&r   r   ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.getter   s    %h

;;r   c                *   < S! V P                   V4      # r   r&  r'  s   &&r   r   ctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.setter   s    %djj(;;r   c                n    \        V P                  R R4      ;'       g    \        V P                  R R4      # )r   F)r<   r  r   r
   s   &r   r   qtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__isabstractmethod__   s6    #DJJ0FN R R&tzz3I5QSr   r  r   )r   r   r   r   r#  r   r   r2   r   r"   r#   r%   r)  s   @r   r)  r     s(     &<<S Sr   r)  c                      <a  ] tR t^t o  Z]P
                  R 4       4       t]P                  ]P
                  R 4       4       tRtV t	R# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Cc                    ^# r   r	   r
   s   &r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C.foo   r   r   c                    R # r   r	   r   s   &&r   r   r3     r   r   r	   N)
r   r   r   r   r    r|   r   r   r"   r#   r/  s   @r   r&   r1     sA     ##' $ '##( $ (r   r&   r'   c                   h   <a a ] tR t^t o ZP                  P
                  V 3R l4       tRtVtV ;t# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Dc                   < \         SV `  # r   r,   r.   s   &r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.D.foo   r1   r   r	   r   r   s   @@r   r5   r6     r   r   r5   c                   \   <a  ] tR t^t o  ZP                  P
                  R 4       tRtV tR# )Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Ec                    R # r   r	   r   s   &&r   r   Wtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.E.foo   r  r   r	   Nr  r	  s   @r   r   r:     r
  r   r   N)r8   r9   r;   r   r   )r   r   r&   r5   r)  r>   s   & @@@r   *test_customdescriptors_with_abstractmethodHtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod   sq    S S)k ) i+2A 2 i+)A ) QUU778r   c                   <  ! R  RSR7      pV P                  VP                  R04        ! R R\        V4      p ! R RVR7      pR# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# );test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ai  c                    R # r   r	   r
   s   &r   x=test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.A.x  r   r   r	   N)	r   r   r   r   r    r|   rC  r"   r#   r$   s   @r   ArA    r   r   rE  r'   rC  c                   &   a  ] tR tRt o R tRtV tR# )>test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.metai  c                    ^#    r	   r
   s   &r   rC  @test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.meta.x  s    r   r	   N)r   r   r   r   rC  r"   r#   r$   s   @r   metarG    s      r   rL  c                       ] tR tRtRtR# );test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ci  r	   Nr   r   r   r   r"   r	   r   r   r&   rN        r   r&   N)r:   r   r   )r   rE  rL  r&   r>   s   &   r   test_metaclass_abc0test_factory.<locals>.TestABC.test_metaclass_abc  sC    k  Q22SE:tQ d r   c                X  <  ! R  RSR7      p ! R R\         4      pV! 4       pV P                  W!4       V P                  W!34       V P                  W14       V P                  W134       VP                  V4      pV P	                  W!4       V P	                  W!34       V P                  W14       V P                  W134       V P                  WB4        ! R RV4      pV! 4       pV P	                  WQ4       V P	                  WQ34       V P                  Wa4       V P                  Wa34       R# )c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ai  r	   NrO  r	   r   r   rE  rU    rP  r   rE  r'   c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Bi  r	   NrO  r	   r   r   BrW    rP  r   rX  c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.Ci!  r	   NrO  r	   r   r   r&   rZ  !  rP  r   r&   N)r  assertNotIsSubclassassertNotIsInstanceregisterassertIsSubclassassertIsInstanceassertIs)r   rE  rX  bB1r&   cr>   s   &      r   test_registration_basics6test_factory.<locals>.TestABC.test_registration_basics  s   k F A$$Q*$$Q-$$Q*$$Q-AB!!!'!!!T*!!!'!!!T*MM" A A!!!'!!!T*!!!'!!!T*r   c                  <  ! R  RSR7      pVP                    ! R R\        4      4       pV! 4       pV P                  W!4       V P                  W!34       V P                  W14       V P                  W134       VP                    ! R RV4      4       pV! 4       pV P                  WA4       V P                  WA34       V P                  WQ4       V P                  WQ34       V P	                  WAP                  V4      4       R# )c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ai*  r	   NrO  r	   r   r   rE  rh  *  rP  r   rE  r'   c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Bi,  r	   NrO  r	   r   r   rX  rj  ,      r   rX  c                       ] tR tRtRtR# )Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.Ci4  r	   NrO  r	   r   r   r&   rm  4  rk  r   r&   N)r]  r  r^  r_  r`  )r   rE  rX  ra  r&   rc  r>   s   &     r   test_register_as_class_deco9test_factory.<locals>.TestABC.test_register_as_class_deco)  s    k ZZF  A!!!'!!!T*!!!'!!!T*ZZA  A!!!'!!!T*!!!'!!!T*MM!ZZ]+r   c                .  <  ! R  RSR7      p ! R R4      pV! 4       pV P                  W14       V P                  W134       S! 4       pVP                  V4       S! 4       pV P                  WT4       V P                  W14       V P                  W134       R# )c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.Ai?  r	   NrO  r	   r   r   rE  rr  ?  rP  r   rE  r'   c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.BiA  r	   NrO  r	   r   r   rX  rt  A  rP  r   rX  N)r\  r]  assertGreaterr_  )r   rE  rX  ra  	token_old	token_newr>   abc_get_cache_tokens   &     r   test_isinstance_invalidation:test_factory.<locals>.TestABC.test_isinstance_invalidation>  s    k  A$$Q*$$Q-+-IJJqM+-Iy4!!!'!!!T*r   c                6  <  ! R  RSR7      pVP                  \        4       V P                  ^*V4       V P                  ^*V34       V P                  \        V4       V P                  \        V34        ! R RV4      pVP                  \        4        ! R R\        4      pV P                  RV4       V P                  RV34       V P                  \        V4       V P                  \        V34       V P                  W14       V P                  W134       R# )	c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.AiN  r	   NrO  r	   r   r   rE  r}  N  rP  r   rE  r'   c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.BiU  r	   NrO  r	   r   r   rX  r  U  rP  r   rX  c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.CiX  r	   NrO  r	   r   r   r&   r  X  s    $r   r&    N)r]  intr_  r^  strr   rE  rX  r&   r>   s   &   r   test_registration_builtins8test_factory.<locals>.TestABC.test_registration_builtinsM  s    k JJsO!!"a(!!"qd+!!#q)!!#t,A JJsOC!!"a(!!"qd+!!#q)!!#t,!!!'!!!T*r   c                  <  ! R  RSR7      pVP                  V4        ! R RV4      pV P                  \        VP                   V4        ! R R\        4      pVP                  V4       VP                  V4        ! R RV4      pVP                  V4       V P                  \        VP                   V4       VP                  V4       R	# )
c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Aia  r	   NrO  r	   r   r   rE  r  a  rP  r   rE  r'   c                       ] tR tRtRtR# )Ftest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.A1id  r	   NrO  r	   r   r   A1r  d  rP  r   r  c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Big  r	   NrO  r	   r   r   rX  r  g  rP  r   rX  c                       ] tR tRtRtR# )Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.Cik  r	   NrO  r	   r   r   r&   r  k  rP  r   r&   N)r]  r8   RuntimeErrorr  )r   rE  r  rX  r&   r>   s   &    r   test_registration_edge_cases:test_factory.<locals>.TestABC.test_registration_edge_cases`  s    k JJqMQ lBKK;F KKNKKNA JJqMlAJJ:JJqMr   c                d   <  ! R  RSR7      pV P                  \        RVP                  ^4       R# )c                       ] tR tRtRtR# )@test_factory.<locals>.TestABC.test_register_non_class.<locals>.Air  r	   NrO  r	   r   r   rE  r  r  rP  r   rE  r'   zCan only register classesN)r   r9   r]  r   rE  r>   s   & r   test_register_non_class5test_factory.<locals>.TestABC.test_register_non_classq  s+    k ""9.I#$::q2r   c                  <  ! R  RSR7      pV P                  W4       V P                  W34        ! R RSR7      pV P                  W4       V P                  W34       V P                  W!4       V P                  W!34        ! R RSR7      pVP                  V4        ! R RV4      pV P                  WA4       V P                  WA34        ! R	 R
V4      pVP                  V4       V P                  W24       V P                  W234       V P                  W44       V P                  W434       V P                  WQ4       V P                  WQ34       V P                  WR4       V P                  WR34       V P                  WT4       V P                  WT34       VP                  \        4        ! R R\        4      pV P                  Wa4       V P                  Wa34       V P	                  ^*V4       V P	                  ^*V34       R# )c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Aix  r	   NrO  r	   r   r   rE  r  x  rP  r   rE  r'   c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Bi|  r	   NrO  r	   r   r   rX  r  |  rP  r   rX  c                       ] tR tRtRtR# )Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.Ci  r	   NrO  r	   r   r   r&   r    rP  r   r&   c                       ] tR tRtRtR# )Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.B1i  r	   NrO  r	   r   r   rb  r    rP  r   rb  c                       ] tR tRtRtR# )Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.C1i  r	   NrO  r	   r   r   C1r    rP  r   r  c                       ] tR tRtRtR# )Mtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.MyInti  r	   NrO  r	   r   r   MyIntr    rP  r   r  N)r^  r[  r]  r  r_  )r   rE  rX  r&   rb  r  r  r>   s   &      r    test_registration_transitiveness>test_factory.<locals>.TestABC.test_registration_transitivenessw  s   k !!!'!!!T*k $$Q*$$Q-$$Q*$$Q-k JJqMQ !!"(!!"d+Q KKO$$Q*$$Q-$$Q+$$Q.!!"(!!"d+!!"(!!"d+!!")!!"e,KK !!%+!!%.!!"a(!!"qd+r   c           
     "  <aaaa	  ! R  RS
R7      pV P                  \        4      ;_uu_ 4        \        / V4       RRR4       V P                  \        4      ;_uu_ 4        \        ^*V4       RRR4        ! R R4      pV P                  \        4      ;_uu_ 4        \        V! 4       V4       RRR4       RR R R .p\        V4       Fn  w  po ! V3R	 lR
S
R7      pV P	                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        \        \
        V4       RRR4       RRR4       Kp  	   ! R R\        4      oRoVV3R lo	 ! V	3R lR
S
R7      pV P                  SS4      ;_uu_ 4        \        \
        V4       RRR4       R#   + '       g   i     ELf; i  + '       g   i     ELH; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     EK/  ; i  + '       g   i     R# ; i)c                       ] tR tRtRtR# )Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ai  r	   NrO  r	   r   r   rE  r    rP  r   rE  r'   Nc                       ] tR tRt^*tRtR# )Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Ci  r	   N)r   r   r   r   __mro__r"   r	   r   r   r&   r    s    r   r&   c                     . # r   r	   )rC  s   &r   <lambda>Mtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>  s    "r   c                      ^*# *   r	   r	   r   r   r  r    s    r   c                      ^*.# r  r	   r	   r   r   r  r    s    r   c                      < ] tR tRt Z tRtR# )Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Si  r	   Nr   r   r   r   __subclasses__r"   )funcs   r   Sr    s    %)Nr   r  )ic                       ] tR tRtRtR# )Ptest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.CustomErrori  r	   NrO  r	   r   r   CustomErrorr    s    #r   r  zexception from __subclasses__c                     < S ! S4      hr   r	   )r  exc_msgs   r   	raise_excNtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.raise_exc  s    !'**r   c                      < ] tR tRt Z tRtR# )r  i  r	   Nr  )r  s   r   r  r    s    !*r   )r8   r9   
issubclass	enumeratesubTestr  	Exceptionr   )r   rE  r&   bogus_subclassesr  r  r  r  r  r  r>   s   &     @@@@r   test_issubclass_bad_arguments;test_factory.<locals>.TestABC.test_issubclass_bad_arguments  s   k  ""9--2q! . ""9--2q! .
  ""9--13" . 	  %%564*+ * \\A\&&**955"3* 6 '&	 7 .i-5G++k + ''W==3" >=U .-- .-- .--" 65 '&& >==sS   F!F-G:G(G)G(>G=F*	-F>	G	G% G((G:=H	c                H  a  ! V3R  lR\         P                  R7      oV P                  SS4       V P                  SS34        ! R R4      pV P                  VS4       V P                  VS34        ! R R4      pV P                  VS4       V P                  VS34       R# )c                   8   <a  ] tR tRt o ]V3R l4       tRtV tR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ai  c                :   < V SJ d   R VP                   9   # \        # r   )__dict__NotImplemented)rD   r&   rE  s   &&r   __subclasshook__Ktest_factory.<locals>.TestABC.test_subclasshook.<locals>.A.__subclasshook__  s    ax$

22))r   r	   N)r   r   r   r   rV   r  r"   r#   )r%   rE  s   @r   rE  r    s     * *r   rE  r'   c                       ] tR tRt^*tRtR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Bi  r	   N)r   r   r   r   r   r"   r	   r   r   rX  r    s    r   rX  c                       ] tR tRt^*tRtR# ):test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ci  r	   N)r   r   r   r   spamr"   r	   r   r   r&   r    s    r   r&   N)r    r   r[  r^  )r   rX  r&   rE  s   &  @r   test_subclasshook/test_factory.<locals>.TestABC.test_subclasshook  s    *ckk * $$Q*$$Q- !!!Q'!!!aT* $$Q*$$Q-r   c                   <a  ! R  RSR7      p ! V3R lR\         4      o ! R RVS4      pV P                  SP                  ^ 4       V! 4        V P                  SP                  ^4       R# )c                       ] tR tRtRtR# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ai  r	   NrO  r	   r   r   rE  r    rP  r   rE  r'   c                   :   <a a ] tR tRt o^ tVV 3R ltRtVtV ;t# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Bi  c                T   < S;P                   ^,          un         \        SV `	  V 4      # rI  )counterr-   __new__)rD   rX  r/   s   &r   r  Ptest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.B.__new__  s    IINI 7?3//r   r	   )	r   r   r   r   r  r  r"   r#   r3   )r/   r%   rX  s   @@r   rX  r    s     0 0r   rX  c                       ] tR tRtRtR# )Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Ci  r	   NrO  r	   r   r   r&   r    rP  r   r&   N)r  r:   r  )r   rE  r&   rX  r>   s   &  @r   test_all_new_methods_are_called=test_factory.<locals>.TestABC.test_all_new_methods_are_called  sV    k 0F 0
Aq QYY*CQYY*r   c                F    V P                  \        P                  R 4       R# )	__slots__N)assertHasAttrr    r   r
   s   &r   test_ABC_has___slots__4test_factory.<locals>.TestABC.test_ABC_has___slots__  s    sww4r   c           	        < R  p ! R R4      p ! R R4      p ! R RV! SW#4      4      pV P                  VP                  S4       R# )c                 \   a a  ! VV 3R  lR\         4      p\         P                  VRR/ 4      # )c                   0   <a  ] tR tRt o VV3R ltRtV tR# )^test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclassi  c                   < S! VSV4      # r   r	   )rD   name
this_basesdbasesrL  s   &&&&r   r  ftest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclass.__new__  s    #D%33r   r	   N)r   r   r   r   r  r"   r#   )r%   r  rL  s   @r   r(   r    s     4 4r   r(   temporary_classr	   )r   r  )rL  r  r(   s   fj r   with_metaclassKtest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass  s,    4 4 4 ||I/@"bIIr   c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ai  r	   NrO  r	   r   r   rE  r        Sr   rE  c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Bi  r	   NrO  r	   r   r   rX  r    r   r   rX  c                       ] tR tRtRtR# )>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.Ci  r	   NrO  r	   r   r   r&   r    rP  r   r&   N)r:   r/   )r   r  rE  rX  r&   r>   s   &    r   test_tricky_new_works3test_factory.<locals>.TestABC.test_tricky_new_works  s<    J
 LLN;5 Q[[+6r   c                  <  ! R  RSR7      pV= V P                  VP                  R04       V P                  VR4       \        P
                  ! V4       V P                  VP                  \        4       4       V! 4        R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )8test_factory.<locals>.TestABC.test_update_del.<locals>.Ai  c                    R # r   r	   r
   s   &r   r   <test_factory.<locals>.TestABC.test_update_del.<locals>.A.foo   r   r   r	   N	r   r   r   r   r    r|   r   r"   r#   r$   s   @r   rE  r	    r   r   rE  r'   r   N)r   r:   r   r7   r    update_abstractmethodsr   r  s   & r   test_update_del-test_factory.<locals>.TestABC.test_update_del  si    k 
 Q22UG<!!!U+&&q)Q22CE:Cr   c                   <  ! R  RSR7      p\         P                  R 4       pW!n        \         P                  ! V4       V P	                  VP
                  RR04       RpV P                  \        W14       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Htest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.Ai  c                    R # r   r	   r
   s   &r   r   Ltest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.A.bar  r   r   r	   N)	r   r   r   r   r    r|   r   r"   r#   r$   s   @r   rE  r    r   r   rE  r'   c                     R # r   r	   r
   s   &r   updated_fooRtest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.updated_foo      r   r   r   zCclass A without an implementation for abstract methods 'bar', 'foo'N)r    r|   r   r  r:   r   r   r9   )r   rE  r  r   r>   s   &   r   test_update_new_abstractmethods=test_factory.<locals>.TestABC.test_update_new_abstractmethods  sm    k 
     E&&q)Q22UENCWC""9c5r   c                2  <  ! R  RSR7      p ! R RV4      pRpV P                  \        W24       V P                  VP                  R04       R Vn        \
        P                  ! V4       V! 4        V P                  VP                  \        4       4       R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Ai  c                    R # r   r	   r
   s   &r   r   Gtest_factory.<locals>.TestABC.test_update_implementation.<locals>.A.foo   r   r   r	   Nr  r$   s   @r   rE  r    r   r   rE  r'   c                       ] tR tRtRtR# )Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Bi$  r	   NrO  r	   r   r   rX  r!  $  rP  r   rX  ;class B without an implementation for abstract method 'foo'r   c                     R # r   r	   r
   s   &r   r  Jtest_factory.<locals>.TestABC.test_update_implementation.<locals>.<lambda>+  s    r   N)r   r9   r:   r   r   r    r  r   r   rE  rX  r   r>   s   &   r   test_update_implementation8test_factory.<locals>.TestABC.test_update_implementation  s}    k 
A  PC""9c5Q22UG<%AE&&q)CQ22CE:r   c                   <  ! R  RSR7      pR p\         P                  V ! R RV4      4       4       pV! 4        V P                  VP                  \	        4       4       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Ai3  c                    R # r   r	   r
   s   &r   r   Etest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.A.foo4  r   r   r	   Nr  r$   s   @r   rE  r*  3  r   r   rE  r'   c                     R  V n         V # )c                     R # r   r	   r
   s   &r   r  atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator.<locals>.<lambda>9  s    tr   r  rC   s   &r   class_decoratorOtest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator8  s    +
r   c                       ] tR tRtRtR# )Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Bi<  r	   NrO  r	   r   r   rX  r3  <  s     r   rX  N)r    r  r:   r   r   )r   rE  r0  rX  r>   s   &   r   test_update_as_decorator6test_factory.<locals>.TestABC.test_update_as_decorator2  s\    k 
 ''A   ( CQ22CE:r   c                     ! R  R4      p\         P                  R 4       pW!n        \         P                  ! V4       V! 4        V P	                  VR4       R# )c                       ] tR tRtRtR# )<test_factory.<locals>.TestABC.test_update_non_abc.<locals>.AiE  r	   NrO  r	   r   r   rE  r8  E  rP  r   rE  c                     R # r   r	   r
   s   &r   r  Ftest_factory.<locals>.TestABC.test_update_non_abc.<locals>.updated_fooH  r  r   r   N)r    r|   r   r  r7   )r   rE  r  s   &  r   test_update_non_abc1test_factory.<locals>.TestABC.test_update_non_abcD  sQ          E&&q)C!!!%:;r   c                   <  ! R  RSR7      p ! R RV4      pV! 4        V= \        P                  ! V4       RpV P                  \        W24       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.AiR  c                    R # r   r	   r
   s   &r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.A.fooS  r   r   r	   Nr  r$   s   @r   rE  r?  R  r   r   rE  r'   c                   &   a  ] tR tRt o R tRtV tR# )Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.BiW  c                    R # r   r	   r
   s   &r   r   Ktest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.B.fooX      r   r	   Nr   r$   s   @r   rX  rC  W        r   rX  r"  Nr   r    r  r   r9   r%  s   &   r   test_update_del_implementation<test_factory.<locals>.TestABC.test_update_del_implementationQ  sJ    k 
A  C&&q)OC""9c5r   c                   <  ! R  RSR7      p ! R RV4      p ! R RV4      pV! 4        V= \        P                  ! V4       RpV P                  \        WC4       R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Aie  c                    R # r   r	   r
   s   &r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.A.foof  r   r   r	   Nr  r$   s   @r   rE  rM  e  r   r   rE  r'   c                       ] tR tRtRtR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Bij  r	   NrO  r	   r   r   rX  rQ  j  rP  r   rX  c                   &   a  ] tR tRt o R tRtV tR# )Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Cim  c                    R # r   r	   r
   s   &r   r   Otest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.C.foon  rF  r   r	   Nr   r$   s   @r   r&   rS  m  rG  r   r&   z;class C without an implementation for abstract method 'foo'NrH  )r   rE  rX  r&   r   r>   s   &    r   "test_update_layered_implementation@test_factory.<locals>.TestABC.test_update_layered_implementationd  sV    k 
A A  C&&q)OC""9c5r   c                  <  ! R  RSR7      p ! R RSR7      p ! R RW!4      pV P                  VP                  R04       V=\        P                  ! V4       V P                  VP                  \        4       4       V! 4        R# )	c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ai{  c                    R # r   r	   r
   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.A.foo|  r   r   r	   Nr  r$   s   @r   rE  rZ  {  r   r   rE  r'   c                   &   a  ] tR tRt o R tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Bi  c                    R # r   r	   r
   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.B.foo  rF  r   r	   Nr   r$   s   @r   rX  r^    rG  r   rX  c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ci  c                    R # r   r	   r
   s   &r   r   Jtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.C.foo  r   r   r	   Nr  r$   s   @r   r&   rb    r   r   r&   r   N)r:   r   r   r    r  r   r  s   &   r   test_update_multi_inheritance;test_factory.<locals>.TestABC.test_update_multi_inheritancez  sq    k 
k A 
 Q22UG<&&q)Q22CE:Cr   r	   N)%r   r   r   r   r   r   r?   rX   ro   r   r   r   r  r=  rQ  rd  rn  ry  r  r  r  r  r  r  r  r  r  r  r  r&  r4  r;  rI  rV  re  r"   r#   )r%   r>   rx  s   @r   TestABCrt   H   s     	+	?	)$	-(	+(	6		6	/8	(>	9<		+0	,*	+	+&	"	2%	,N/	#b	.$	+	5
	7	 	6 	;(	;$	<	6&	6,	 	r   rg  c                   :   <a  ] tR tRt o V3R ltV3R ltRtV tR# )-test_factory.<locals>.TestABCWithInitSubclassi  c           
        <a  ! R  RSR7      p/ o ! V3R lR4      p ! R RW!^^^R7      pV P                  S\        ^^^R7      4       R# )	c                       ] tR tRtRtRtR# )\test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.abc_ABCi  r	   N)r   r   r   r   r  r"   r	   r   r   abc_ABCrl    s    	r   rm  r'   c                   6   <a a ] tR tRt oV V3R ltRtVtV ;t# )htest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargsi  c                F   < \         SV `  4        SP                  V4       R # r   r-   __init_subclass__updaterD   kwargsr/   saved_kwargss   &,r   rr  ztest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargs.__init_subclass__      G-/ ''/r   r	   r   r   r   r   rr  r"   r#   r3   r/   r%   rv  s   @@r   ReceivesClassKwargsro         0 0r   r{  c                       ] tR tRtRtR# )]test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.Receiveri  r	   NrO  r	   r   r   Receiverr~    rP  r   r  )rC  yzNr:   dict)r   rm  r{  r  rv  r>   s   &   @r   test_works_with_init_subclassKtest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass  sJ    K L0 0.1Q \4!qA+>?r   c                |   <a / o ! V3R  lR4      p ! R RVSRR7      pV P                  S\        RR7      4       R# )c                   6   <a a ] tR tRt oV V3R ltRtVtV ;t# )otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Ai  c                F   < \         SV `  4        SP                  V4       R # r   rq  rt  s   &,r   rr  ځtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.A.__init_subclass__  rx  r   r	   ry  rz  s   @@r   rE  r    r|  r   rE  c                       ] tR tRtRtR# )otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Bi  r	   NrO  r	   r   r   rX  r    rP  r   rX  test)r(   r  )r  Nr  )r   rE  rX  rv  r>   s   &  @r   6test_positional_only_and_kwonlyargs_with_init_subclassdtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass  s7    L0 0
A6 \4V+<=r   r	   N)r   r   r   r   r  r  r"   r#   rq   s   @r   TestABCWithInitSubclassri    s     
	@
	> 
	>r   r  )unittestTestCase)r>   rx  rr   rg  r  s   ff   r   test_factoryr     sQ    5+)) 5+pI	 I	(## I	X>("3"3 >2 #:::r   T__main__)__doc__r  r    _py_abcinspectr   r  r   get_cache_tokenTestLegacyAPI_Py
TestABC_PyTestABCWithInitSubclass_PyTestLegacyAPI_C	TestABC_CTestABCWithInitSubclass_C__unittest_thread_unsafe__r   mainr	   r   r   <module>r     s      
  ^
;@ <HHOH_H_<a 8 *88DS[[EHEXEX9Z 55
 /3  +(,
 %8<  5zMMO r   