Ë
    ­«ëj  ã                   ó`   — d dl Zd dlmc mZ d dlmZ d dlm	Z
 d dlmZ d„ Zdefd„Zdefd„Zy)	é    N)ÚPath)Úindex_builder)Úensure_shared_rootc                  óî  — d} t        j                  | «      }d„ |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}}d„ |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}}y )Nz3TODO: do thing
normal line
ACTION: act
rozhodnuto Xc              3   ó$   K  — | ]  }d |v –— Œ
 y­w)ÚTODON© ©Ú.0Úlines     ú:/home/oem/CyberBrain26-unified/tests/test_index_builder.pyú	<genexpr>z*test_extract_task_lines.<locals>.<genexpr>
   s   è ø€ Ò0 $ˆv˜Œ~Ñ0ùó   ‚z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany©Úpy0Úpy2Úpy4c              3   ó$   K  — | ]  }d |v –— Œ
 y­w)ÚACTIONNr	   r
   s     r   r   z*test_extract_task_lines.<locals>.<genexpr>   s   è ø€ Ò2 Dˆx˜4ÔÑ2ùr   )
ÚibÚ_extract_task_linesr   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)ÚtextÚlinesÚ@py_assert1Ú@py_assert3Ú@py_format5s        r   Útest_extract_task_linesr%      sÕ   € ØC€DÜ×"Ñ" 4Ó(€EÙ0¨%Ô0Ð0Œ3Ð0Ó0Ð0Ñ0×0×0×0×0Õ0Œ3×0×0Ó0Œ3×0×0Ô0Ð0×0×0Ò0Ð0×0×0×0×0×0Ò0Ù2¨EÔ2Ð2Œ3Ð2Ó2Ð2Ñ2×2×2×2×2Õ2Œ3×2×2Ó2Œ3×2×2Ô2Ð2×2×2Ò2Ð2×2×2×2×2×2Ó2ó    Útmp_pathc                 óN  — t        | dz  «      }|dz  dz  }|j                  d¬«       |dz  j                  d«       t        j                  |¬«      }|d	   }d
}||k(  }|slt        j                  d|fd||f«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}|dz  dz  }	|	j                  }
 |
«       }|s�ddt        j                  «       v st        j                  |	«      rt        j                  |	«      ndt        j                  |
«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}
}t        j                  |¬«      }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}}d}|d   }||v }|slt        j                  d|fd||f«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}y )NÚsharedÚsortedÚnoteT©Úparentsún.mdzhello world©Úshared_rootÚentries_counté   )ú==)z%(py1)s == %(py4)s©Úpy1r   úassert %(py6)sÚpy6Úindexzindex.jsonlzAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}Úidxr   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚentries)r   r5   Úpy3r7   zassert %(py8)sÚpy8Úsummaryr   ©Úin)z%(py1)s in %(py4)s)r   ÚmkdirÚ
write_textr   Úbuild_indexr   Ú_call_reprcomparer   r   r   Úexistsr   r   r   Ú
read_indexr:   )r'   ÚrootÚ
sorted_dirÚresÚ@py_assert0r#   Ú@py_assert2r$   Ú@py_format7r9   r"   r;   Ú@py_assert5Ú@py_assert4Ú@py_format9s                  r   Útest_build_index_creates_jsonlrP      sð  € Ü˜h¨Ñ1Ó2€DØ˜‘ 6Ñ)€JØ×Ñ˜TÐÔ"Ø�&Ñ×$Ñ$ ]Ô3Ü
�.‰. TÔ
*€CØˆÑÐ$ 1Ð$Ð 1Ñ$×$×$Õ$Ð 1×$×$Ó$Ð×$×$Ò$ 1×$×$×$×$×$×$Ó$Ø
�‰.˜=Ñ
(€CØ�:‰:Ð‰:‹<Ð‰<××××Õˆ3××Óˆ3××Ôˆ:××Òˆ<×××××ÒÜ�m‰m¨Ô-€GÜˆw‹<Ð˜1Ðˆ<˜1Ñ××Õˆ<˜1×××××ÑŒ3××ÓŒ3×××××Òˆw××Óˆw××Ôˆ<××Ò˜1××××××ÓØÐ"˜ ™
Ð"ˆ9˜
Ð"×"×"Õ"ˆ9˜
×"×"Ó"ˆ9×"×"Ò"˜
×"×"×"×"×"×"Ô"r&   c                 ó  — t        | dz  «      }|dz  dz  }|j                  d¬«       |dz  j                  d«       t        j                  |¬«      }|d	   }d
}||k\  }|slt        j                  d|fd||f«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}|dz  dz  j                  «       }	d}||	v }|s™t        j                  d|fd||	f«      t        j                  |«      dt        j                  «       v st        j                  |	«      rt        j                  |	«      nddœz  }
dd|
iz  }t        t        j                  |«      «      ‚d x}}y )Nr)   r*   r+   Tr,   r.   zTODO: fix bug
some textr/   Útotal_tasksr2   )ú>=)z%(py1)s >= %(py4)sr4   r6   r7   Útasksz
tasks.jsonr   r?   )z%(py1)s in %(py3)sÚdata)r5   r<   zassert %(py5)sÚpy5)r   rA   rB   r   Úextract_tasksr   rD   r   r   r   Ú	read_textr   r   r   )r'   rG   rH   rI   rJ   r#   rK   r$   rL   rU   Ú@py_format4Ú@py_format6s               r   Útest_extract_tasks_finds_todor[      s  € Ü˜h¨Ñ1Ó2€DØ˜‘ 6Ñ)€JØ×Ñ˜TÐÔ"Ø�&Ñ×$Ñ$Ð%?Ô@Ü
×
Ñ
 tÔ
,€CØˆ}ÑÐ" Ð"Ð Ñ"×"×"Õ"Ð ×"×"Ó"Ð×"×"Ò" ×"×"×"×"×"×"Ó"Ø�7‰N˜\Ñ)×4Ñ4Ó6€DØÐˆ6�Tˆ>××Õˆ6�T××Óˆ6×××××Ð�T××Ó�T××××××Ôr&   )Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   Úpathlibr   Úcyberbrain26.productr   r   Ú cyberbrain26.product.shared_rootr   r%   rP   r[   r	   r&   r   ú<module>rc      s0   ðß  „ Õ å 4Ý ?ò3ð#¨Tó #ð¨Dô r&   