Files
ezra-environment/tests/__pycache__/test_skill_validator.cpython-312-pytest-9.0.2.pyc

101 lines
11 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<00>5<EFBFBD>ib<00><00><><00>dZddlZddlmcmZddlZddlZddl Z ddl
Z
ddl m Z ejjdejjejj!e<11>d<04><00>ddlmZmZdZdZdZd Zd
ZGd <0B>d e
j4<00>ZGd <0A>de
j4<00>Zedk(re
j<<00>yy)z!Tests for skill validator module.<2E>N)<01>Pathz..)<02>SkillValidator<6F>SkillValidationErrora<72>---
name: test-skill
description: A valid test skill for validation
version: "1.0.0"
author: ezra
tags: [testing, validation]
---
# Test Skill
## Trigger
Use when testing skill validation.
## Steps
1. First step: do something
2. Second step: verify
3. Third step: done
```bash
echo "hello world"
```
## Pitfalls
- Don't forget to test edge cases
## Verification
- Check the output matches expected
zv---
name: minimal
description: Minimal skill
version: "1.0"
---
## Trigger
When needed.
## Steps
1. Do it.
2. Done.
z># No Frontmatter Skill
## Steps
1. This will fail validation
z.---
name: [invalid yaml
---
## Steps
1. test
z@---
description: Missing name and version
---
## Steps
1. test
c<00><00>eZdZd<01>Zd<02>Zd<03>Zy)<05>TestSkillValidationErrorc<00><><00>tddd<03>}|jdt|<01><00>|jdt|<01><00>y)N<>ERRORz bad thing<6E> frontmatteru<>r<00>assertIn<49>repr<70><02>self<6C>es <20>0/root/wizards/ezra/tests/test_skill_validator.py<70>test_repr_errorz(TestSkillValidationError.test_repr_errorQs4<00><00> <20><17>+<2B>}<7D> E<><01> <0C> <0A> <0A>e<EFBFBD>T<EFBFBD>!<21>W<EFBFBD>%<25> <0C> <0A> <0A>k<EFBFBD>4<EFBFBD><01>7<EFBFBD>+<2B>c<00>R<00>tdd<02>}|jdt|<01><00>y)N<>WARNINGz maybe badur rs r<00>test_repr_warningz*TestSkillValidationError.test_repr_warningVs <00><00> <20><19>K<EFBFBD> 8<><01> <0C> <0A> <0A>h<EFBFBD><04>Q<EFBFBD><07>(rc<00>R<00>tdd<02>}|jdt|<01><00>y)N<>INFOzjust fyiur rs r<00>test_repr_infoz'TestSkillValidationError.test_repr_infoZs <00><00> <20><16><1A> 4<><01> <0C> <0A> <0A>h<EFBFBD><04>Q<EFBFBD><07>(rN)<06>__name__<5F>
__module__<EFBFBD> __qualname__rrr<00>rrrrPs<00><00>,<2C>
)<29>)rrc<00>p<00>eZdZd<01>Zd<02>Zddededefd<06>Zd<07>Zd<08>Z d <09>Z
d
<EFBFBD>Z d <0B>Z d <0C>Z d <0A>Zd<0E>Zd<0F>Zd<10>Zd<11>Zy)<14>TestSkillValidatorc<00>T<00>t<00>|_tj<00>|_y)N)r<00> validator<6F>tempfile<6C>mkdtemp<6D>tmp_dir)rs r<00>setUpzTestSkillValidator.setUp`s<00><00>'<27>)<29><04><0E><1F>'<27>'<27>)<29><04> rc<00>F<00>ddl}|j|jd<02><03>y)NrT)<01> ignore_errors)<03>shutil<69>rmtreer$)rr(s r<00>tearDownzTestSkillValidator.tearDownds<00><00><15><0E> <0A> <0A>d<EFBFBD>l<EFBFBD>l<EFBFBD>$<24> <0A>7r<00>content<6E>name<6D>returnc<00><><00>t|j<00>|z }|jdd<01><02>|dz }|j|<01>|S)NT)<02>parents<74>exist_ok<6F>SKILL.md)rr$<00>mkdir<69>
write_text)rr+r,<00> skill_dir<69>paths r<00> _write_skillzTestSkillValidator._write_skillhs@<00><00><18><14><1C><1C>&<26><14>-<2D> <09><11><0F><0F><04>t<EFBFBD><0F>4<><18>:<3A>%<25><04> <0C><0F><0F><07> <20><13> rc<00><><00>|jt<00>}|jj|<01>}t |D<00>cgc]}|j
dk(s<01>|<03><02>c}<03>}|j |dd|<02><00><02>ycc}w)Nr rzUnexpected errors: )r6<00> VALID_SKILLr!<00> validate_file<6C>len<65>level<65> assertEqual)rr5<00>errorsr<00> error_counts r<00>test_valid_skill_no_errorsz-TestSkillValidator.test_valid_skill_no_errorsosf<00><00><13> <20> <20><1B>-<2D><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06><19>f<EFBFBD>C<><11><01><07><07>7<EFBFBD>0B<30>1<EFBFBD>C<>D<> <0B> <0C><18><18><1B>a<EFBFBD>+><3E>v<EFBFBD>h<EFBFBD>)G<>H<><48>Ds <00>A1<08>A1c<00>f<00>|jtd<01>}|jj|<01>}t |D<00>cgc]}|j
dk(s<01>|<03><02>c}<03>}|j |d<03>t |D<00>cgc]}|j
dk(s<01>|<03><02>c}<03>}|j|d<03>ycc}wcc}w)N<>minimalr rr)r6<00> MINIMAL_SKILLr!r9r:r;r<<00> assertGreater)rr5r=rr><00> warning_counts r<00> test_minimal_skill_warnings_onlyz3TestSkillValidator.test_minimal_skill_warnings_onlyus<><00><00><13> <20> <20><1D> <09>:<3A><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06><19>f<EFBFBD>C<><11><01><07><07>7<EFBFBD>0B<30>1<EFBFBD>C<>D<> <0B> <0C><18><18><1B>a<EFBFBD>(<28><1B><06>G<>1<EFBFBD>!<21>'<27>'<27>Y<EFBFBD>2F<32>Q<EFBFBD>G<>H<> <0A> <0C><1A><1A>=<3D>!<21>,<2C><> D<01><>Hs<00>B)<08>B)<08>6B.<08> B.c<00><00>|jtd<01>}|jj|<01>}|D<00>cgc]#}d|jvs<01>|j
dk(s<01>"|<03><02>%}}|j t|<04>d<04>ycc}w)N<>broken1r
r r)r6<00>BROKEN_SKILL_NO_FMr!r9<00>fieldr;rCr:)rr5r=r<00> fm_errorss r<00>test_no_frontmatter_errorz,TestSkillValidator.test_no_frontmatter_error~sm<00><00><13> <20> <20>!3<>Y<EFBFBD>?<3F><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06> &<26>Z<>1<EFBFBD>-<2D>1<EFBFBD>7<EFBFBD>7<EFBFBD>*B<>q<EFBFBD>w<EFBFBD>w<EFBFBD>RY<52>GY<47>Q<EFBFBD>Z<> <09>Z<> <0C><1A><1A>3<EFBFBD>y<EFBFBD>><3E>1<EFBFBD>-<2D><>[s<00>A<<04>
A<<04>A<c<00><><00>|jtd<01>}|jj|<01>}|D<00>cgc]!}d|jvsd|j
vs<01> |<03><02>#}}|j t|<04>d<04>ycc}w)N<>broken2<6E>YAMLr
r)r6<00>BROKEN_SKILL_BAD_YAMLr!r9<00>messagerIrCr:)rr5r=r<00> yaml_errorss r<00>test_bad_yaml_errorz&TestSkillValidator.test_bad_yaml_error<6F>sp<00><00><13> <20> <20>!6<> <09>B<><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06>"(<28>\<5C>Q<EFBFBD>F<EFBFBD>a<EFBFBD>i<EFBFBD>i<EFBFBD>,?<3F>=<3D>TU<54>T[<5B>T[<5B>C[<5B>q<EFBFBD>\<5C> <0B>\<5C> <0C><1A><1A>3<EFBFBD>{<7B>+<2B>Q<EFBFBD>/<2F><>]s <00>!A:<04>A:c<00><><00>|jtd<01>}|jj|<01>}|D<00>cgc]}d|jvs<01>|<03><02>}}|j t |<04>d<03>ycc}w)N<>broken3zMissing requiredr)r6<00>BROKEN_SKILL_MISSING_FIELDSr!r9rPrCr:)rr5r=r<00>missings r<00>test_missing_required_fieldsz/TestSkillValidator.test_missing_required_fields<64>sb<00><00><13> <20> <20>!<<3C>i<EFBFBD>H<><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06>$<24>H<><11>(:<3A>a<EFBFBD>i<EFBFBD>i<EFBFBD>(G<>1<EFBFBD>H<><07>H<> <0C><1A><1A>3<EFBFBD>w<EFBFBD><<3C><11>+<2B><>Is <00>A,<04>
A,c<00><><00>|jjtd<01><00>}|jt |<01>d<02>|j|dj
d<04>y)Nz/nonexistent/SKILL.md<6D>rr )r!r9rr<r:r;)rr=s r<00>test_file_not_foundz&TestSkillValidator.test_file_not_found<6E>sH<00><00><15><1E><1E>-<2D>-<2D>d<EFBFBD>3J<33>.K<>L<><06> <0C><18><18><13>V<EFBFBD><1B>a<EFBFBD>(<28> <0C><18><18><16><01><19><1F><1F>'<27>2rc<00><><00>|jdd<02>}|jj|<01>}|jt d<03>|D<00><00><00>y)N<><00>emptyc3<00>:K<00>|]}|jdk(<00><01><00>y<01>w)z File is emptyN)rP)<02>.0rs r<00> <genexpr>z5TestSkillValidator.test_empty_file.<locals>.<genexpr><3E>s<00><00><><00>I<>Q<EFBFBD>A<EFBFBD>I<EFBFBD>I<EFBFBD><1F>8<>I<>s<00>)r6r!r9<00>
assertTrue<EFBFBD>any)rr5r=s r<00>test_empty_filez"TestSkillValidator.test_empty_file<6C>s?<00><00><13> <20> <20><12>W<EFBFBD>-<2D><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06> <0C><0F><0F><03>I<>&<26>I<>I<>Jrc<00><><00>d}|j|d<02>}|jj|<02>}|D<00>cgc]}d|jvs<01>|<04><02>}}|j t |<05>d<04>ycc}w)Nzb---
name: BAD NAME!
description: test
version: "1.0"
---
## Trigger
test
## Steps
1. test
2. done
<EFBFBD>badnamez Invalid namer)r6r!r9rPrCr:)r<00>skillr5r=r<00> name_errorss r<00>test_invalid_name_formatz+TestSkillValidator.test_invalid_name_format<61>sj<00><00>
<04><05><14> <20> <20><15> <09>2<><04><15><1E><1E>-<2D>-<2D>d<EFBFBD>3<><06>"(<28>H<>Q<EFBFBD>N<EFBFBD>a<EFBFBD>i<EFBFBD>i<EFBFBD>,G<>q<EFBFBD>H<> <0B>H<> <0C><1A><1A>3<EFBFBD>{<7B>+<2B>Q<EFBFBD>/<2F><>Is <00>A*<04>A*c<00>6<00>|jtd<01>|jtd<02>|jj t |j <00><00>}|jt|<01>d<03>|jd|<01>|jd|<01>y)Nzskill-azskill-b<>)
r6r8rBr!<00> validate_allrr$r<r:r )r<00>resultss r<00>test_validate_allz$TestSkillValidator.test_validate_all<6C>so<00><00> <0C><19><19>+<2B>y<EFBFBD>1<> <0C><19><19>-<2D><19>3<><16>.<2E>.<2E>-<2D>-<2D>d<EFBFBD>4<EFBFBD><<3C><<3C>.@<40>A<><07> <0C><18><18><13>W<EFBFBD><1C>q<EFBFBD>)<29> <0C> <0A> <0A>i<EFBFBD><17>)<29> <0C> <0A> <0A>i<EFBFBD><17>)rc<00>Z<00>|jtd<01>|jtd<02>|jj t |j <00><00>}|jj|<01>}|jd|<02>|jd|<02>|jd|<02>y)N<>good<6F>badzSkill Validation Report) r6r8rHr!rkrr$<00> format_reportr )rrl<00>reports r<00>test_format_reportz%TestSkillValidator.test_format_report<72>s<00><00> <0C><19><19>+<2B>v<EFBFBD>.<2E> <0C><19><19>,<2C>e<EFBFBD>4<><16>.<2E>.<2E>-<2D>-<2D>d<EFBFBD>4<EFBFBD><<3C><<3C>.@<40>A<><07><15><1E><1E>-<2D>-<2D>g<EFBFBD>6<><06> <0C> <0A> <0A>/<2F><16>8<> <0C> <0A> <0A>f<EFBFBD>f<EFBFBD>%<25> <0C> <0A> <0A>e<EFBFBD>V<EFBFBD>$rc<00>b<00>t|j<00>dz }|j<00>|dz jt<00>|dz j<00>|j
j |dz <00>}|D<00>cgc]}d|jvs<01>|<03><02>}}|jt|<04>d<05>ycc}w)N<>
weirdskillr1<00>
random_dirz Non-standardr)
rr$r2r3r8r!r9rPrCr:)rr4r=r<00> dir_warningss r<00>test_nonstandard_subdir_warningz2TestSkillValidator.test_nonstandard_subdir_warning<6E>s<><00><00><18><14><1C><1C>&<26><1C>5<> <09><11><0F><0F><19> <12>Z<EFBFBD> <1F>+<2B>+<2B>K<EFBFBD>8<> <12>\<5C> !<21>(<28>(<28>*<2A><15><1E><1E>-<2D>-<2D>i<EFBFBD>*<2A>.D<>E<><06>#)<29>I<>a<EFBFBD>^<5E>q<EFBFBD>y<EFBFBD>y<EFBFBD>-H<><01>I<> <0C>I<> <0C><1A><1A>3<EFBFBD>|<7C>,<2C>a<EFBFBD>0<><30>Js <00>6B,<04>
B,N)z
test-skill)rrrr%r*<00>strrr6r?rErKrRrWrZrcrhrmrsrxrrrrr_s_<00><00>*<2A>8<><14>C<EFBFBD><14>s<EFBFBD><14>d<EFBFBD><14>I<01> -<2D>.<2E> 0<> ,<2C> 3<>
K<01>
0<>"*<2A>%<25>1rr<00>__main__)<1F>__doc__<5F>builtins<6E> @py_builtins<6E>_pytest.assertion.rewrite<74> assertion<6F>rewrite<74>
@pytest_ar<61>os<6F>sysr"<00>unittest<73>pathlibrr5<00>insert<72>join<69>dirname<6D>__file__<5F>tools.skill_validatorrrr8rBrHrOrU<00>TestCaserrr<00>mainrrr<00><module>r<>s<><00><01>'<27><00><00> <09>
<EFBFBD><0F><0F><18><03><08><08><0F><0F><01>2<EFBFBD>7<EFBFBD>7<EFBFBD><<3C><<3C><02><07><07><0F><0F><08> 9<>4<EFBFBD>@<40>A<>F<><04> <0B>: <04> <0A><04><12> <04><15><04><1B> )<29>x<EFBFBD>0<>0<> )<29>d1<><18>*<2A>*<2A>d1<>N <0C>z<EFBFBD><19><11>H<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>r