Ë
    `Çj±  ã                   óÀ   — d Z ddlZddlmc mZ ddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ de
fd	„Zdd
ededefd„Zdefd„Zdefd„Z G d„ d«      Zy)u6   Tests for dgred writer â€” dry-run mode, no real HTTP.é    N)Údatetime©ÚSettings)ÚDgredClient)Ú
LeadWriter)ÚMatchResultÚOfferÚ	PartQueryÚPostÚreturnc                  ó   — t        dd¬«      S )NÚtestT)Údgred_api_keyÚdry_runr   © ó    ú:/var/www/html/agent.samochodowy/tests/test_dgred_writer.pyÚ	_settingsr      s   € Ü &°$Ô7Ð7r   ÚpidÚauthorc                 ól   — t        | d|d|j                  dd«      › �dt        dddd	d
«      d| › �¬«      S )Nu   TIR czÄ™Å›cizhttps://facebook.com/ú Ú ú/Szukam pompy wody do Volvo FH13, numer 20744939ié  é   é   é
   é   z&https://facebook.com/groups/tir/posts/)Úpost_idÚgroupÚauthor_nameÚauthor_profile_urlÚtextÚ	timestampÚpost_url)r   Úreplacer   )r   r   s     r   Ú_postr'      sK   € ÜØØØØ2°6·>±>À#ÀrÓ3JÐ2KÐLØ>Ü˜4  B¨¨BÓ/Ø9¸#¸Ð?ôð r   c            	      ó(   — t        ddddddgd¬«      S )	NTr   ÚVOLVOÚFH13z
pompa wodyÚ20744939u$   Zapytanie o pompÄ™ wody z numerem OE)Úis_part_requestÚraw_textÚbrandÚmodelÚcategoryÚ
oe_numbersÚreason)r
   r   r   r   Ú_queryr3      s&   € ÜØØBØØØØ�<Ø5ôð r   c                  óB   — t        ddt        ddddddg¬	«      gd
¬«      S )Ngffffffî?ÚoeÚ1Úallegrozhttps://allegro.pl/1zPompa wody VOLVO FH13 20744939g      |@r+   )Úoffer_idÚplatformÚurlÚtitleÚpricer1   T)Ú
confidenceÚmethodÚoffersÚmatched)r   r	   r   r   r   Ú_match_resultrA   (   s;   € ÜØØäØØ"Ø*Ø6ØØ&˜<ôð	
ð ôð r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú
TestDryRunc                 ó–  — t        «       }t        |«      }t        ||«      }|j                  t        j
                  «      5  |j                  t        «       t        «       t        «       «       ddd«       d„ |j                  D «       }t        |«      }|s•ddt        j                  «       v st        j                  t        «      rt        j                   t        «      ndt        j                   |«      t        j                   |«      dœz  }t#        t        j$                  |«      «      ‚dx}}|j'                  «        y# 1 sw Y   ŒÓxY w)z-In dry-run mode, no real HTTP calls are made.Nc              3   ó8   K  — | ]  }d |j                   v –— Œ y­w)z	[DRY-RUN]N©Úmessage©Ú.0Úrs     r   ú	<genexpr>z2TestDryRun.test_dry_run_no_http.<locals>.<genexpr>E   s   è ø€ ÒD°�; !§)¡)Ô+ÑDùó   ‚ú,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany©Úpy0Úpy2Úpy4)r   r   r   Úat_levelÚloggingÚINFOÚ
write_leadr'   r3   rA   ÚrecordsrN   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚclose)ÚselfÚcaplogÚsettingsÚdgredÚwriterÚ@py_assert1Ú@py_assert3Ú@py_format5s           r   Útest_dry_run_no_httpzTestDryRun.test_dry_run_no_http;   sÏ   € ä“;ˆÜ˜HÓ%ˆÜ˜E 8Ó,ˆà�_‰_œWŸ\™\Ó*ñ 	BØ×Ñœe›g¤v£x´³ÔA÷	Bñ E°V·^±^ÔDÐDŒsÐDÓDÐDÑD×D×D×D×DÕDŒs×D×DÓDŒs×D×DÔDÐD×D×DÒDÐD×D×D×D×D×DÒDØ�‰�÷	Bð 	Bús   Á,D?Ä?Ec                 ó  — t        «       }t        |«      }t        ||«      }|j                  t        j
                  «      5  |j                  t        d«      t        «       t        «       «       |j                  t        d«      t        «       t        «       «       ddd«       |j                  D �cg c]"  }d|j                  v sŒd|j                  vsŒ!|‘Œ$ }}t        |«      }d}||k(  }	|	söt        j                  d|	fd||f«      d	t        j                   «       v st        j"                  t        «      rt        j$                  t        «      nd	d
t        j                   «       v st        j"                  |«      rt        j$                  |«      nd
t        j$                  |«      t        j$                  |«      dœz  }
dd|
iz  }t'        t        j(                  |«      «      ‚dx}x}	}|j+                  «        y# 1 sw Y   �ŒbxY wc c}w )u2   Same author â†’ same client_id, not created twice.r6   Ú2NzPOST /clientsÚnotesr   )ú==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚcreate_calls)rP   Úpy1Úpy3Úpy6zassert %(py8)sÚpy8)r   r   r   rS   rT   rU   rV   r'   r3   rA   rW   rG   rm   rZ   Ú_call_reprcomparerX   rY   r[   r\   r]   r^   r_   )r`   ra   rb   rc   rd   rJ   rn   Ú@py_assert2Ú@py_assert5Ú@py_assert4Ú@py_format7Ú@py_format9s               r   Útest_client_dedupzTestDryRun.test_client_dedupH   sM  € ä“;ˆÜ˜HÓ%ˆÜ˜E 8Ó,ˆà�_‰_œWŸ\™\Ó*ñ 	EØ×Ñœe C›j¬&«(´M³OÔDØ×Ñœe C›j¬&«(´M³OÔD÷	Eð
 $*§>¡>Öo˜a°_ÈÏ	É	Ò5QÐV]Ðef×enÑenÒVnšÐoˆÐoÜ�<Ó Ð% AÐ%Ð  AÑ%×%×%Õ%Ð  A×%×%×%×%×%Ñ%Œs×%×%Ó%Œs×%×%×%×%×%Ò%�<×%×%Ó%�<×%×%Ô%Ð ×%×%Ò% A×%×%×%×%×%×%Ó%Ø�‰�÷	Eñ 	Eüò
 ps   ÁAG:Â0HÃHÃHÇ:Hc                 ó¢  — t        «       }t        |«      }t        ||«      }t        ddd¬«      }|j	                  t
        j                  «      5  |j                  t        «       t        «       |«       ddd«       d„ |j                  D «       }t        |«      }|s•ddt        j                  «       v st        j                  t        «      rt        j                   t        «      ndt        j                   |«      t        j                   |«      d	œz  }t#        t        j$                  |«      «      ‚dx}}|j'                  «        y# 1 sw Y   ŒÓxY w)
zEEven with no match, a lead is created with 'Brak dopasowania' status.g        ÚbrakF)r=   r>   r@   Nc              3   ó8   K  — | ]  }d |j                   v –— Œ y­w)zBrak dopasowaniaNrF   rH   s     r   rK   z0TestDryRun.test_no_match_lead.<locals>.<genexpr>a   s   è ø€ ÒK°qÐ%¨¯©Ô2ÑKùrL   rM   rN   rO   )r   r   r   r   rS   rT   rU   rV   r'   r3   rW   rN   rX   rY   rZ   r[   r\   r]   r^   r_   )	r`   ra   rb   rc   rd   Úno_matchre   rf   rg   s	            r   Útest_no_match_leadzTestDryRun.test_no_match_leadW   s×   € ä“;ˆÜ˜HÓ%ˆÜ˜E 8Ó,ˆÜ¨#°fÀeÔLˆà�_‰_œWŸ\™\Ó*ñ 	;Ø×Ñœe›g¤v£x°Ô:÷	;ñ L¸F¿N¹NÔKÐKŒsÐKÓKÐKÑK×K×K×K×KÕKŒs×K×KÓKŒs×K×KÔKÐK×K×KÒKÐK×K×K×K×K×KÒKØ�‰�÷		;ð 	;ús   Á$EÅEN)Ú__name__Ú
__module__Ú__qualname__rh   ry   r~   r   r   r   rC   rC   :   s   „ òòór   rC   )r6   zJan Kowalski)Ú__doc__ÚbuiltinsrX   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterZ   rT   r   Úagent_samochodowy.configr   Úagent_samochodowy.dgred.clientr   Úagent_samochodowy.dgred.writerr   Úagent_samochodowy.modelsr   r	   r
   r   r   Ústrr'   r3   rA   rC   r   r   r   ú<module>rŒ      si   ðÙ <ç  „ ƒÝ å -Ý 6Ý 5ß HÓ Hð8�8ó 8ñ	ˆsð 	 #ð 	¸4ó 	ð	�	ó 	ð�{ó ÷$(ò (r   