Edit File: case.cpython-36.opt-2.pyc
3 48e��������������������@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z ddlmZ�ddl mZmZmZmZmZ�dZe��ZdZG�dd��de�ZG�d d ��d e�ZG�dd��de�ZG�d d��de�Zdd��Zdd��Zdd��Zdd��Zdd��Z dd��Z!G�dd��d�Z"dd��Z#G�dd ��d e"�Z$G�d!d"��d"e$�Z%G�d#d$��d$e$�Z&ej'd%d&d'g�Z(G�d(d)��d)ej)�Z*G�d*d+��d+e"�Z+G�d,d-��d-e�Z,G�d.d/��d/e,�Z-G�d0d1��d1e,�Z.dS�)2�����N����)�result)�strclass� safe_repr�_count_diff_all_purpose�_count_diff_hashable�_common_shorten_reprTz@ Diff is %s characters long. Set self.maxDiff to None to see it.c���������������@���s���e�Zd�ZdS�)�SkipTestN)�__name__� __module__�__qualname__��r ���r ����%/usr/lib64/python3.6/unittest/case.pyr ������s���r ���c���������������@���s���e�Zd�ZdS�)�_ShouldStopN)r ���r���r���r ���r ���r ���r���r���"���s���r���c���������������@���s���e�Zd�ZdS�)�_UnexpectedSuccessN)r ���r���r���r ���r ���r ���r���r���'���s���r���c���������������@���s&���e�Zd�Zddd�Zejddd��ZdS�) �_OutcomeNc�������������C���s4���d|�_�||�_t|d�|�_d|�_g�|�_d�|�_g�|�_d�S�)NF� addSubTestT)�expecting_failurer����hasattr�result_supports_subtests�success�skipped�expectedFailure�errors)�selfr���r ���r ���r����__init__.���s����z_Outcome.__init__Fc�������������c���s����|�j�}d|�_�z�y d�V��W�n��tk r.�����Y�n��tk rh�}�z d|�_�|�jj|t|�f��W�Y�d�d�}~X�nj�tk rz���Y�nX���tj��}|�j r�||�_ nd|�_�|�jj||f��d�}Y�nX�|�jr�|�j�r�|�jj|d�f��W�d�|�j�o�||�_�X�d�S�)NTF) r����KeyboardInterruptr ���r����append�strr����sys�exc_infor���r���r���r���)r���� test_case�isTestZold_success�er ���r ���r ���r����testPartExecutor7���s*���� $ z_Outcome.testPartExecutor)N)F)r ���r���r���r���� contextlib�contextmanagerr$���r ���r ���r ���r���r���-���s��� r���c�������������C���s���|�S�)Nr ���)�objr ���r ���r����_idU���s����r(���c����������������s�����fdd�}|S�)Nc����������������s4���t�|�t�s$tj|����fdd��}|}�d|�_��|�_|�S�)Nc�����������������s���t�����d�S�)N)r ���)�args�kwargs)�reasonr ���r����skip_wrapper^���s����z-skip.<locals>.decorator.<locals>.skip_wrapperT)� isinstance�type� functools�wraps�__unittest_skip__�__unittest_skip_why__)� test_itemr,���)r+���r ���r���� decorator\���s���� zskip.<locals>.decoratorr ���)r+���r4���r ���)r+���r����skipX���s���� r5���c�������������C���s���|�rt�|�S�tS�)N)r5���r(���)� conditionr+���r ���r ���r����skipIfh���s����r7���c�������������C���s���|�st�|�S�tS�)N)r5���r(���)r6���r+���r ���r ���r���� skipUnlessp���s����r8���c�������������C���s ���d|�_�|�S�)NT)�__unittest_expecting_failure__)r3���r ���r ���r���r���x���s����r���c����������������s4���t�|�t�r t��fdd�|�D���S�t�|�t�o2t|����S�)Nc�������������3���s���|�]}t�|���V��qd�S�)N)�_is_subtype)�.0r#���)�basetyper ���r���� <genexpr>~���s����z_is_subtype.<locals>.<genexpr>)r-����tuple�allr.���� issubclass)�expectedr<���r ���)r<���r���r:���|���s���� r:���c���������������@���s���e�Zd�Zdd��Zdd��ZdS�)�_BaseTestCaseContextc�������������C���s ���||�_�d�S�)N)r!���)r���r!���r ���r ���r���r�������s����z_BaseTestCaseContext.__init__c�������������C���s ���|�j�j|�j|�}|�j�j|��d�S�)N)r!����_formatMessage�msg�failureException)r����standardMsgrD���r ���r ���r���� _raiseFailure����s����z"_BaseTestCaseContext._raiseFailureN)r ���r���r���r���rG���r ���r ���r ���r���rB�������s���rB���c�������������C���s���dt�jkrt|��S�tS�d�S�)NZWITHIN_PYTHON_RPM_BUILD)�os�environr5���r(���)r+���r ���r ���r����_skipInRpmBuild����s���� rJ���c���������������@���s���e�Zd�Zddd�Zdd��ZdS�)�_AssertRaisesBaseContextNc�������������C���s@���t�j|�|��||�_||�_|d�k r*tj|�}||�_d�|�_d�|�_d�S�)N) rB���r���rA���r!����re�compile�expected_regex�obj_namerD���)r���rA���r!���rN���r ���r ���r���r�������s���� z!_AssertRaisesBaseContext.__init__c�������������C���s����z�t�|�j|�j�s"td||�jf���|rD|d�d�krDtjdtd��f�}|sx|jdd��|�_ |rttjdt t|���td��|�S�|^}}y|j|�_ W�n�tk r����t|�|�_ Y�nX�|���|||��W�d�Q�R�X�W�d�d�}�X�d�S�)Nz%s() arg 1 must be %sr���zcallable is None����rD���z3%r is an invalid keyword argument for this function)r:���rA���� _base_type� TypeError�_base_type_str�warnings�warn�DeprecationWarning�poprD����next�iterr ���rO����AttributeErrorr���)r����namer)���r*���Zcallable_objr ���r ���r����handle����s.����z_AssertRaisesBaseContext.handle)N)r ���r���r���r���r\���r ���r ���r ���r���rK�������s��� rK���c���������������@���s$���e�Zd�ZeZdZdd��Zdd��ZdS�)�_AssertRaisesContextz-an exception type or tuple of exception typesc�������������C���s���|�S�)Nr ���)r���r ���r ���r���� __enter__����s����z_AssertRaisesContext.__enter__c���������� ���C���s����|d�krby|�j�j}W�n�tk r2���t|�j��}Y�nX�|�jrP|�jdj||�j���ql|�jdj|���n tj|��t ||�j��s|dS�|j d��|�_|�jd�kr�dS�|�j}|j t|��s�|�jdj|jt|����dS�)Nz{} not raised by {}z {} not raisedFTz"{}" does not match "{}")rA���r ���rZ���r���rO���rG����format� traceback�clear_framesr@����with_tracebackZ exceptionrN����search�pattern)r����exc_type� exc_value�tb�exc_namerN���r ���r ���r����__exit__����s(���� z_AssertRaisesContext.__exit__N)r ���r���r���� BaseExceptionrQ���rS���r^���ri���r ���r ���r ���r���r]�������s���r]���c���������������@���s$���e�Zd�ZeZdZdd��Zdd��ZdS�)�_AssertWarnsContextz(a warning type or tuple of warning typesc�������������C���sR���x$t�jj��D�]}t|dd��ri�|_qW�tjdd�|�_|�jj��|�_tj d|�j ��|�S�)N�__warningregistry__T)�record�always)r����modules�values�getattrrl���rT����catch_warnings�warnings_managerr^����simplefilterrA���)r����vr ���r ���r���r^�������s���� z_AssertWarnsContext.__enter__c���������� ���C���s��|�j�j|||��|d�k rd�S�y|�jj}W�n�tk rF���t|�j�}Y�nX�d�}xd|�jD�]Z}|j}t||�j�slqT|d�krx|}|�j d�k r�|�j j t|���r�qT||�_|j|�_|j |�_ d�S�W�|d�k r�|�jdj|�j jt|����|�jr�|�jdj||�j���n|�jdj|���d�S�)Nz"{}" does not match "{}"z{} not triggered by {}z{} not triggered)rs���ri���rA���r ���rZ���r���rT����messager-���rN���rc���Zwarning�filename�linenorG���r_���rd���rO���)r���re���rf���rg���rh���Zfirst_matching�m�wr ���r ���r���ri�������s8���� z_AssertWarnsContext.__exit__N)r ���r���r����WarningrQ���rS���r^���ri���r ���r ���r ���r���rk�������s���rk����_LoggingWatcher�records�outputc���������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�_CapturingHandlerc�������������C���s���t�jj|���tg�g��|�_d�S�)N)�logging�Handlerr���r|����watcher)r���r ���r ���r���r���,��s����z_CapturingHandler.__init__c�������������C���s���d�S�)Nr ���)r���r ���r ���r����flush0��s����z_CapturingHandler.flushc�������������C���s*���|�j�jj|��|�j|�}|�j�jj|��d�S�)N)r����r}���r���r_���r~���)r���rm���rD���r ���r ���r����emit3��s���� z_CapturingHandler.emitN)r ���r���r���r���r����r����r ���r ���r ���r���r���'��s���r���c���������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �_AssertLogsContextz"%(levelname)s:%(name)s:%(message)sc�������������C���s:���t�j|�|��||�_|r(tjj||�|�_ntj|�_d�|�_d�S�)N) rB���r����logger_namer����Z_nameToLevel�get�level�INFOrD���)r���r!���r����r����r ���r ���r���r���?��s����z_AssertLogsContext.__init__c�������������C���s����t�|�jtj�r|�j�}|�_ntj|�j��}|�_tj|�j�}t��}|j |��|j |�_ |jd�d���|�_|j |�_|j|�_|g|_|j|�j ��d|_|j S�)NF)r-���r����r����ZLogger�loggerZ getLoggerZ Formatter�LOGGING_FORMATr���ZsetFormatterr�����handlers�old_handlersr����� old_level� propagate� old_propagate�setLevel)r���r����Z formatterZhandlerr ���r ���r���r^���H��s���� z_AssertLogsContext.__enter__c�������������C���s`���|�j�|�j_|�j|�j_|�jj|�j��|d�k r.dS�t|�jj �dkr\|�j djtj |�j�|�jj���d�S�)NFr���z-no logs of level {} or higher triggered on {})r����r����r����r����r����r����r�����lenr����r}���rG���r_���r����ZgetLevelNamer����r[���)r���re���rf���rg���r ���r ���r���ri���Y��s���� z_AssertLogsContext.__exit__N)r ���r���r���r����r���r^���ri���r ���r ���r ���r���r����:��s��� r����c���������������@���s���e�Zd�ZeZdZd�Zd�ZdZd�dd �Z d d��Z dd ��Zdd��Zdd��Z edd���Zedd���Zdd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zejefd(d)��Zd*d+��Zd,d-��Zd.d/��Z d�d1d2�Z!d3d4��Z"d5d6��Z#d7d8��Z$d9d:��Z%d�d;d<�Z&d�d=d>�Z'd�d?d@�Z(dAdB��Z)dCdD��Z*dEdF��Z+d�dGdH�Z,dIdJ��Z-d�dKdL�Z.d�dMdN�Z/d�dOdP�Z0d�dQdR�Z1d�dSdT�Z2d�dUdV�Z3dWdX��Z4d�dYdZ�Z5d�d[d\�Z6d�d]d^�Z7d�d_d`�Z8d�dadb�Z9d�dcdd�Z:d�dedf�Z;d�dgdh�Z<d�didj�Z=d�dkdl�Z>d�dmdn�Z?d�dodp�Z@d�dqdr�ZAd�dsdt�ZBd�dudv�ZCd�dwdx�ZDd�dydz�ZEd�d{d|�ZFd�d}d~�ZGdd���ZHd�d���ZId�d�d��ZJd�d�d��ZKd�d���ZLeLe/��ZMZNeLe0��ZOZPeLe1��ZQZReLe2��ZSZTeLe(��ZUZVeLe*�ZWeLe'�ZXeLeH�ZYeLeJ�ZZeLeK�Z[d0S�)��TestCaseT�P���������������F�runTestc�������������C���s����||�_�d�|�_d|�_yt|�|�}W�n.�tk rN���|dkrJtd|�j|f���Y�n X�|j|�_g�|�_d�|�_ i�|�_ |�jtd��|�jt d��|�jtd��|�jtd��|�jtd��|�jtd��d�S�) NzNo testr����zno such test method in %s: %s�assertDictEqual�assertListEqual�assertTupleEqual�assertSetEqual�assertMultiLineEqual)�_testMethodName�_outcome�_testMethodDocrq���rZ���� ValueError� __class__�__doc__� _cleanups�_subtest�_type_equality_funcs�addTypeEqualityFunc�dict�listr>����set� frozensetr���)r���Z methodName� testMethodr ���r ���r���r������s&����zTestCase.__init__c�������������C���s���||�j�|<�d�S�)N)r����)r���Ztypeobj�functionr ���r ���r���r�������s���� zTestCase.addTypeEqualityFuncc�������������O���s���|�j�j|||f��d�S�)N)r����r���)r���r����r)���r*���r ���r ���r���� addCleanup���s����zTestCase.addCleanupc�������������C���s���d�S�)Nr ���)r���r ���r ���r����setUp���s����zTestCase.setUpc�������������C���s���d�S�)Nr ���)r���r ���r ���r����tearDown���s����zTestCase.tearDownc�������������C���s���d�S�)Nr ���)�clsr ���r ���r���� setUpClass���s����zTestCase.setUpClassc�������������C���s���d�S�)Nr ���)r����r ���r ���r���� tearDownClass���s����zTestCase.tearDownClassc�������������C���s���dS�)Nr���r ���)r���r ���r ���r����countTestCases���s����zTestCase.countTestCasesc�������������C���s���t�j��S�)N)r���Z TestResult)r���r ���r ���r����defaultTestResult���s����zTestCase.defaultTestResultc�������������C���s ���|�j�}|r|jd�d�j��pd�S�)N� r���)r�����split�strip)r����docr ���r ���r����shortDescription���s����zTestCase.shortDescriptionc�������������C���s���dt�|�j�|�jf�S�)Nz%s.%s)r���r����r����)r���r ���r ���r����id���s����zTestCase.idc�������������C���s ���t�|��t�|�k rtS�|�j|jkS�)N)r.����NotImplementedr����)r����otherr ���r ���r����__eq__���s����zTestCase.__eq__c�������������C���s���t�t|��|�jf�S�)N)�hashr.���r����)r���r ���r ���r����__hash__���s����zTestCase.__hash__c�������������C���s���d|�j�t|�j�f�S�)Nz%s (%s))r����r���r����)r���r ���r ���r����__str__���s����zTestCase.__str__c�������������C���s���dt�|�j�|�jf�S�)Nz<%s testMethod=%s>)r���r����r����)r���r ���r ���r����__repr__���s����zTestCase.__repr__c�������������C���s<���t�|dd��}|d�k r |||��ntjdtd��|j|��d�S�)N�addSkipz4TestResult has no addSkip method, skips not reportedr����)rq���rT���rU����RuntimeWarning� addSuccess)r���r���r!���r+���r����r ���r ���r����_addSkip���s����zTestCase._addSkipc�������������k���s����|�j�d�ks|�j�j�rd�V��d�S�|�j}|d�kr8tj|�}n|jj|�}t|�||�|�_zX|�j�j|�jdd���d�V��W�d�Q�R�X�|�j�j s�|�j�j }|d�k r�|jr�t�n|�j�j r�t�W�d�||�_X�d�S�)NT)r"���)r����r���r�����collections�ChainMap�params� new_child�_SubTestr$���r���r���Zfailfastr���r���)r���rD���r�����parentZ params_mapr���r ���r ���r����subTest ��s$����zTestCase.subTestc�������������C���sd���x^|D�]V\}}t�|t�r*|j|j||��q|d�k rt|d�|�j�rP|j||��q|j||��qW�d�S�)Nr���)r-���r����r���r!���r@���rE���� addFailureZaddError)r���r���r����testr ���r ���r ���r����_feedErrorsToResult(��s���� zTestCase._feedErrorsToResultc�������������C���sD���y |j�}W�n*�tk r4���tjdt��|j|���Y�nX�||�|��d�S�)Nz@TestResult has no addExpectedFailure method, reporting as passes)�addExpectedFailurerZ���rT���rU���r����r����)r���r���r ���r����r ���r ���r����_addExpectedFailure2��s���� zTestCase._addExpectedFailurec�������������C���sh���y |j�}W�nP�tk rZ���tjdt��y td��W�n$�tk rT���|j|�tj����Y�nX�Y�n X�||���d�S�)NzCTestResult has no addUnexpectedSuccess method, reporting as failure) �addUnexpectedSuccessrZ���rT���rU���r����r���r����r���r ���)r���r���r����r ���r ���r����_addUnexpectedSuccess<��s���� zTestCase._addUnexpectedSuccessNc������� ���(���C���s��|}|d�kr.|�j���}t|dd��}|d�k r.|���|j|���t|�|�j�}t|�jdd�s^t|dd�r�z,t|�jdd�pxt|dd�}|�j||�|��W�d�|j|���X�d�S�t|dd�}t|�dd�}|p�|}t|�} z�| |�_| j |����|�j ���W�d�Q�R�X�| j�r<|| _| j |�dd���|���W�d�Q�R�X�d| _| j |����|�j ���W�d�Q�R�X�|�j���x"| jD�]\} }|�j|| |���qLW�|�j|| j��| j�r�|�r�| j�r�|�j|| j��n |�j|��n |j|���|S�|j|���|d�k�r�t|d d��}|d�k �r�|���| jj���d�| _d�|�_X�d�S�) N�startTestRunr1���Fr2�����r9���T)r"����stopTestRun)r����rq���Z startTestr����r����r����ZstopTestr���r����r$���r����r���r���r����� doCleanupsr���r����r���r���r����r����r�����clear) r���r���Zorig_resultr����r����Zskip_whyZexpecting_failure_methodZexpecting_failure_classr����outcomer����r+���r����r ���r ���r����runK��sh���� zTestCase.runc���������� ���C���sN���|�j�p t��}x:|�jrF|�jj��\}}}|j|����|||��W�d�Q�R�X�qW�|jS�)N)r����r���r����rW���r$���r���)r���r����r����r)���r*���r ���r ���r���r�������s����zTestCase.doCleanupsc�������������O���s���|�j�||�S�)N)r����)r���r)����kwdsr ���r ���r����__call__���s����zTestCase.__call__c�������������C���sJ���|�j����t|�|�j����|�j���x&|�jrD|�jjd�\}}}|||��q W�d�S�)Nr������)r����rq���r����r����r����rW���)r���r����r)���r*���r ���r ���r����debug���s����zTestCase.debugc�������������C���s���t�|��d�S�)N)r ���)r���r+���r ���r ���r����skipTest���s����zTestCase.skipTestc�������������C���s���|�j�|��d�S�)N)rE���)r���rD���r ���r ���r����fail���s����z TestCase.failc�������������C���s&���|r"|�j�|dt|���}|�j|��d�S�)Nz%s is not false)rC���r���rE���)r����exprrD���r ���r ���r����assertFalse���s����zTestCase.assertFalsec�������������C���s&���|s"|�j�|dt|���}|�j|��d�S�)Nz%s is not true)rC���r���rE���)r���r����rD���r ���r ���r���� assertTrue���s����zTestCase.assertTruec�������������C���sP���|�j�s|p|S�|d�kr|S�yd||f�S��tk rJ���dt|�t|�f�S�X�d�S�)Nz%s : %s)�longMessage�UnicodeDecodeErrorr���)r���rD���rF���r ���r ���r���rC������s���� zTestCase._formatMessagec���������� ���O���s$���t�||��}z|jd||�S�d�}X�d�S�)N�assertRaises)r]���r\���)r����expected_exceptionr)���r*����contextr ���r ���r���r�������s���� zTestCase.assertRaisesc�������������O���s���t�||��}|jd||�S�)N�assertWarns)rk���r\���)r����expected_warningr)���r*���r����r ���r ���r���r�������s���� zTestCase.assertWarnsc�������������C���s���t�|�||�S�)N)r����)r���r����r����r ���r ���r���� assertLogs��s����zTestCase.assertLogsc�������������C���sF���t�|�t�|�kr@|�jjt�|��}|d�k r@t|t�r<t|�|�}|S�|�jS�)N)r.���r����r����r-���r���rq����_baseAssertEqual)r����first�secondZasserterr ���r ���r����_getAssertEqualityFunc(��s���� zTestCase._getAssertEqualityFuncc�������������C���s0���||ks,dt�||��}|�j||�}|�j|��d�S�)Nz%s != %s)r���rC���rE���)r���r����r����rD���rF���r ���r ���r���r����B��s����zTestCase._baseAssertEqualc�������������C���s���|�j�||�}||||d��d�S�)N)rD���)r����)r���r����r����rD���Zassertion_funcr ���r ���r����assertEqualI��s����zTestCase.assertEqualc�������������C���s2���||ks.|�j�|dt|�t|�f��}|�j|��d�S�)Nz%s == %s)rC���r���rE���)r���r����r����rD���r ���r ���r����assertNotEqualP��s����zTestCase.assertNotEqualc�������������C���s����||krd�S�|d�k r$|d�k r$t�d��|d�k r\t||��|kr@d�S�dt|�t|�t|�f�}n<|d�krhd}tt||��|�dkr�d�S�dt|�t|�|f�}|�j||�}|�j|��d�S�)Nz specify delta or places not bothz%s != %s within %s delta����r���z%s != %s within %r places)rR����absr����roundrC���rE���)r���r����r�����placesrD����deltarF���r ���r ���r����assertAlmostEqualY��s&����zTestCase.assertAlmostEqualc�������������C���s����|d�k r|d�k rt�d��|d�k rZ||k�r>t||��|kr>d�S�dt|�t|�t|�f�}nF|d�krfd}||k�r�tt||��|�dkr�d�S�dt|�t|�|f�}|�j||�}|�j|��d�S�)Nz specify delta or places not bothz%s == %s within %s deltar����r���z%s == %s within %r places)rR���r����r���r����rC���rE���)r���r����r����r����rD���r����rF���r ���r ���r����assertNotAlmostEqual���s"���� zTestCase.assertNotAlmostEqualc����������'���C���s���|d�k rP|j�}t||�s.|�jd|t|�f���t||�sT|�jd|t|�f���nd}d�}yt|�}W�n �ttfk r����d|�}Y�nX�|d�kr�yt|�}W�n �ttfk r����d|�}Y�nX�|d�k�r�||kr�d�S�d|j��ft||���}x�t t ||��D�]�} y|| �} W�n.�tttfk �r8���|d| |f�7�}P�Y�nX�y|| �}W�n.�tttfk �rt���|d| |f�7�}P�Y�nX�| |kr�|d | ft| |���7�}P�q�W�||k�r�|d�k�r�t|�t|�k�r�d�S�||k�r0|d |||�f�7�}y|d|t||��f�7�}W�n,�tttfk �r,���|d||f�7�}Y�nX�nh||k��r�|d |||�f�7�}y|d|t||��f�7�}W�n,�tttfk �r����|d||f�7�}Y�nX�|}ddj tjtj|�j��tj|�j�����} |�j|| �}|�j||�}|�j|��d�S�)NzFirst sequence is not a %s: %szSecond sequence is not a %s: %sZsequencez(First %s has no length. Non-sequence?z)Second %s has no length. Non-sequence?z%ss differ: %s != %s z( Unable to index element %d of first %s z) Unable to index element %d of second %s z# First differing element %d: %s %s z+ First %s contains %d additional elements. zFirst extra element %d: %s z'Unable to index element %d of first %s z, Second %s contains %d additional elements. z(Unable to index element %d of second %s r����)r ���r-���rE���r���r����rR����NotImplementedError� capitalizer����range�min� IndexErrorr.����join�difflib�ndiff�pprint�pformat� splitlines�_truncateMessagerC���r����)r���Zseq1Zseq2rD����seq_typeZ seq_type_nameZ differingZlen1Zlen2�iZitem1Zitem2rF����diffMsgr ���r ���r����assertSequenceEqual���s����� zTestCase.assertSequenceEqualc�������������C���s2���|�j�}|d�kst|�|kr"||�S�|tt|���S�)N)�maxDiffr�����DIFF_OMITTED)r���rv����diffZmax_diffr ���r ���r���r����s����zTestCase._truncateMessagec�������������C���s���|�j�|||td��d�S�)N)r��)r ��r����)r���Zlist1Zlist2rD���r ���r ���r���r������s���� zTestCase.assertListEqualc�������������C���s���|�j�|||td��d�S�)N)r��)r ��r>���)r���Ztuple1Ztuple2rD���r ���r ���r���r������s���� zTestCase.assertTupleEqualc������� ��� ���C���sh��y|j�|�}W�n^�tk r>�}�z|�jd|���W�Y�d�d�}~X�n0�tk rl�}�z|�jd|���W�Y�d�d�}~X�nX�y|j�|�}W�n^�tk r��}�z|�jd|���W�Y�d�d�}~X�n0�tk r��}�z|�jd|���W�Y�d�d�}~X�nX�|p�|s�d�S�g�}|�r|jd��x|D�]}|jt|����qW�|�rH|jd��x|D�]}|jt|����q0W�dj|�} |�j|�j|| ���d�S�)Nz/invalid type when attempting set difference: %sz2first argument does not support set difference: %sz3second argument does not support set difference: %sz*Items in the first set but not the second:z*Items in the second set but not the first:r����)� differencerR���r����rZ���r����reprr����rC���) r���Zset1Zset2rD���Zdifference1r#���Zdifference2�lines�itemrF���r ���r ���r���r����"��s2���� zTestCase.assertSetEqualc�������������C���s2���||kr.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s not found in %s)r���r����rC���)r����member� containerrD���rF���r ���r ���r����assertInM��s����zTestCase.assertInc�������������C���s2���||kr.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s unexpectedly found in %s)r���r����rC���)r���r��r��rD���rF���r ���r ���r����assertNotInT��s����zTestCase.assertNotInc�������������C���s2���||k r.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s is not %s)r���r����rC���)r����expr1�expr2rD���rF���r ���r ���r����assertIs[��s����zTestCase.assertIsc�������������C���s,���||kr(dt�|�f�}|�j|�j||���d�S�)Nzunexpectedly identical: %s)r���r����rC���)r���r��r��rD���rF���r ���r ���r����assertIsNotb��s����zTestCase.assertIsNotc�������������C���s~���|�j�|td��|�j�|td��||krzdt||��}ddjtjtj|�j��tj|�j�����}|�j ||�}|�j |�j||���d�S�)Nz"First argument is not a dictionaryz#Second argument is not a dictionaryz%s != %sr����)�assertIsInstancer����r���r����r���r��r��r��r��r��r����rC���)r���Zd1Zd2rD���rF���r��r ���r ���r���r����h��s���� zTestCase.assertDictEqualc������� ������C���s����t�jdt��g�}g�}xX|j��D�]L\}}||kr:|j|��q|||�kr|jdt|�t|�t||��f���qW�|pt|szd�S�d}|r�ddjdd��|D����}|r�|r�|d7�}|d dj|��7�}|�j|�j||���d�S�) Nz&assertDictContainsSubset is deprecatedz%s, expected: %s, actual: %sr����zMissing: %s�,c�������������s���s���|�]}t�|�V��qd�S�)N)r���)r;���ry���r ���r ���r���r=������s����z4TestCase.assertDictContainsSubset.<locals>.<genexpr>z; zMismatched values: %s) rT���rU���rV����itemsr���r���r����r����rC���) r���ZsubsetZ dictionaryrD���ZmissingZ mismatched�key�valuerF���r ���r ���r����assertDictContainsSubsett��s,����z!TestCase.assertDictContainsSubsetc������� ������C���s����t�|�t�|��}}ytj|�}tj|�}W�n�tk rH���t||�}Y�nX�||krVd�S�t||�}|r�d}dd��|D��}dj|�} |�j|| �}|�j||�}|�j |��d�S�)NzElement counts were not equal: c�������������S���s���g�|�]}d�|��qS�)z First has %d, Second has %d: %rr ���)r;���r��r ���r ���r���� <listcomp>���s����z-TestCase.assertCountEqual.<locals>.<listcomp>r����) r����r�����CounterrR���r���r���r����r��rC���r����) r���r����r����rD���Z first_seqZ second_seqZdifferencesrF���r��r��r ���r ���r����assertCountEqual���s ���� zTestCase.assertCountEqualc�������������C���s����|�j�|td��|�j�|td��||kr�t|�|�jks@t|�|�jkrN|�j|||��|jdd�}|jdd�}t|�dkr�|jd�|kr�|d�g}|d�g}dt||��}dd jt j ||���}|�j||�}|�j|�j ||���d�S�) NzFirst argument is not a stringzSecond argument is not a stringT)�keependsr���z r����z%s != %sr����)r��r���r�����_diffThresholdr����r��r����r���r����r���r��r��r����rC���)r���r����r����rD���Z firstlinesZsecondlinesrF���r��r ���r ���r���r�������s���� zTestCase.assertMultiLineEqualc�������������C���s2���||k�s.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s not less than %s)r���r����rC���)r����a�brD���rF���r ���r ���r���� assertLess���s����zTestCase.assertLessc�������������C���s2���||ks.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s not less than or equal to %s)r���r����rC���)r���r$��r%��rD���rF���r ���r ���r����assertLessEqual���s����zTestCase.assertLessEqualc�������������C���s2���||ks.dt�|�t�|�f�}|�j|�j||���d�S�)Nz%s not greater than %s)r���r����rC���)r���r$��r%��rD���rF���r ���r ���r���� assertGreater���s����zTestCase.assertGreaterc�������������C���s2���||ks.dt�|�t�|�f�}|�j|�j||���d�S�)Nz"%s not greater than or equal to %s)r���r����rC���)r���r$��r%��rD���rF���r ���r ���r����assertGreaterEqual���s����zTestCase.assertGreaterEqualc�������������C���s,���|d�k r(dt�|�f�}|�j|�j||���d�S�)Nz%s is not None)r���r����rC���)r���r'���rD���rF���r ���r ���r����assertIsNone���s����zTestCase.assertIsNonec�������������C���s"���|d�krd}|�j�|�j||���d�S�)Nzunexpectedly None)r����rC���)r���r'���rD���rF���r ���r ���r����assertIsNotNone���s����zTestCase.assertIsNotNonec�������������C���s0���t�||�s,dt|�|f�}|�j|�j||���d�S�)Nz%s is not an instance of %r)r-���r���r����rC���)r���r'���r����rD���rF���r ���r ���r���r�����s���� zTestCase.assertIsInstancec�������������C���s0���t�||�r,dt|�|f�}|�j|�j||���d�S�)Nz%s is an instance of %r)r-���r���r����rC���)r���r'���r����rD���rF���r ���r ���r����assertNotIsInstance���s���� zTestCase.assertNotIsInstancec�������������O���s���t�||�|�}|jd||�S�)N�assertRaisesRegex)r]���r\���)r���r����rN���r)���r*���r����r ���r ���r���r-�����s���� zTestCase.assertRaisesRegexc�������������O���s���t�||�|�}|jd||�S�)N�assertWarnsRegex)rk���r\���)r���r����rN���r)���r*���r����r ���r ���r���r.����s����zTestCase.assertWarnsRegexc�������������C���sJ���t�|ttf�rtj|�}|j|�sFd|j|f�}|�j||�}|�j|��d�S�)Nz&Regex didn't match: %r not found in %r) r-���r����bytesrL���rM���rc���rd���rC���rE���)r����textrN���rD���rF���r ���r ���r����assertRegex��s���� zTestCase.assertRegexc�������������C���s`���t�|ttf�rtj|�}|j|�}|r\d||j��|j����|j|f�}|�j ||�}|�j |��d�S�)Nz"Regex matched: %r matches %r in %r)r-���r���r/��rL���rM���rc����start�endrd���rC���rE���)r���r0��Zunexpected_regexrD����matchrF���r ���r ���r����assertNotRegex&��s���� zTestCase.assertNotRegexc����������������s�����fdd�}|S�)Nc�����������������s ���t�jdj��j�td����|�|�S�)NzPlease use {0} instead.r����)rT���rU���r_���r ���rV���)r)���r*���)� original_funcr ���r����deprecated_func6��s���� z,TestCase._deprecate.<locals>.deprecated_funcr ���)r6��r7��r ���)r6��r���� _deprecate5��s����zTestCase._deprecatei���i���)r����)N)N)N)N)NN)N)N)N)NNN)NNN)NN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)\r ���r���r����AssertionErrorrE���r����r ��r#��Z_classSetupFailedr���r����r����r����r�����classmethodr����r����r����r����r����r����r����r����r����r����r����r%���r&����_subtest_msg_sentinelr����r����r����r����r����r����r����r����r����r����r����r����rC���r����r����r����r����r����r����r����r����r����r ��r��r����r����r����r��r��r��r��r����r��r!��r����r&��r'��r(��r)��r*��r+��r��r,��r-��r.��r1��r5��r8��ZfailUnlessEqualZassertEqualsZfailIfEqualZassertNotEqualsZfailUnlessAlmostEqualZassertAlmostEqualsZfailIfAlmostEqualZassertNotAlmostEqualsZ failUnlessZassert_ZfailUnlessRaisesZfailIfZassertRaisesRegexpZassertRegexpMatchesZassertNotRegexpMatchesr ���r ���r ���r���r����f��s����! E ! � '� c + ! r����c�������������������sf���e�Zd�Zd��fdd� Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Z���Z S�)�FunctionTestCaseNc����������������s*���t�t|��j���||�_||�_||�_||�_d�S�)N)�superr<��r���� _setUpFunc� _tearDownFunc� _testFunc�_description)r���ZtestFuncr����r����Zdescription)r����r ���r���r���T��s ����zFunctionTestCase.__init__c�������������C���s���|�j�d�k r|�j����d�S�)N)r>��)r���r ���r ���r���r����[��s���� zFunctionTestCase.setUpc�������������C���s���|�j�d�k r|�j����d�S�)N)r?��)r���r ���r ���r���r����_��s���� zFunctionTestCase.tearDownc�������������C���s���|�j����d�S�)N)r@��)r���r ���r ���r���r����c��s����zFunctionTestCase.runTestc�������������C���s���|�j�jS�)N)r@��r ���)r���r ���r ���r���r����f��s����zFunctionTestCase.idc�������������C���s@���t�||�j�stS�|�j|jko>|�j|jko>|�j|jko>|�j|jkS�)N)r-���r����r����r>��r?��r@��rA��)r���r����r ���r ���r���r����i��s����zFunctionTestCase.__eq__c�������������C���s���t�t|��|�j|�j|�j|�jf�S�)N)r����r.���r>��r?��r@��rA��)r���r ���r ���r���r����r��s����zFunctionTestCase.__hash__c�������������C���s���dt�|�j�|�jjf�S�)Nz%s (%s))r���r����r@��r ���)r���r ���r ���r���r����v��s���� zFunctionTestCase.__str__c�������������C���s���dt�|�j�|�jf�S�)Nz<%s tec=%s>)r���r����r@��)r���r ���r ���r���r����z��s���� zFunctionTestCase.__repr__c�������������C���s2���|�j�d�k r|�j�S�|�jj}|r.|jd�d�j��p0d�S�)Nr����r���)rA��r@��r����r����r����)r���r����r ���r ���r���r����~��s���� z!FunctionTestCase.shortDescription)NNN)r ���r���r���r���r����r����r����r����r����r����r����r����r����� __classcell__r ���r ���)r����r���r<��K��s��� r<��c�������������������sD���e�Zd�Z��fdd�Zdd��Zdd��Zdd��Zd d ��Zdd��Z���Z S�) r����c����������������s(���t���j���||�_||�_||�_|j|�_d�S�)N)r=��r����_messager!���r����rE���)r���r!���rv���r����)r����r ���r���r������s ���� z_SubTest.__init__c�������������C���s���t�d��d�S�)Nzsubtests cannot be run directly)r����)r���r ���r ���r���r�������s����z_SubTest.runTestc�������������C���sb���g�}|�j�tk r |jdj|�j����|�jrTdjdd��t|�jj���D���}|jdj|���dj|�p`dS�)Nz[{}]z, c�������������s���s���|�]\}}d�j�||�V��qdS�)z{}={!r}N)r_���)r;����kru���r ���r ���r���r=������s���z+_SubTest._subDescription.<locals>.<genexpr>z({})� z(<subtest>))rC��r;��r���r_���r����r�����sortedr��)r����partsZparams_descr ���r ���r����_subDescription���s���� z_SubTest._subDescriptionc�������������C���s���dj�|�jj��|�j���S�)Nz{} {})r_���r!���r����rH��)r���r ���r ���r���r�������s����z_SubTest.idc�������������C���s ���|�j�j��S�)N)r!���r����)r���r ���r ���r���r�������s����z_SubTest.shortDescriptionc�������������C���s���dj�|�j|�j���S�)Nz{} {})r_���r!���rH��)r���r ���r ���r���r�������s����z_SubTest.__str__) r ���r���r���r���r����rH��r����r����r����rB��r ���r ���)r����r���r�������s���r����)/r���r/���r���rH���r����r��rL���rT���r����r%���r`���r����r����utilr���r���r���r���r���Z __unittest�objectr;��r��� Exceptionr ���r���r���r���r(���r5���r7���r8���r���r:���rB���rJ���rK���r]���rk���� namedtupler|���r����r���r����r����r<��r����r ���r ���r ���r����<module>���sX���( /%5 ,�������l: