Files
granthi-sync/tests/__pycache__/test_client.cpython-314.pyc
T

97 lines
16 KiB
Plaintext
Raw Normal View History

+
,…j2 ã
órRt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIHt]PP^]PP]PP]
4RR44]P!RR7t]]P R&^RItRR R
R R R R
R R]R]P R,/tRt!RR]P*4t!RR]4t!RR]4t!RR]P*4t!RR]P*4t!RR]4t]R8Xd]P:!4R#R#)z“Unit tests for the granthi-sync client: autocommit / ff / diverged logic,
config handling, device-flow polling (mocked HTTP). Stdlib unittest only.N)Úmockz..Úclientzgranthi-test-home-©ÚprefixÚGRANTHI_SYNC_HOMEÚGIT_AUTHOR_NAMEÚGIT_AUTHOR_EMAILút@tÚGIT_COMMITTER_NAMEÚGIT_COMMITTER_EMAILÚHOMEÚPATHcó–\P!RRV.\V4,RRR\R7PP 4#)Úgitz-CT)ÚcheckÚcapture_outputÚtextÚenv)Ú
subprocessÚrunÚlistÚGIT_ENVÚstdoutÚstrip)ÚcwdÚargss&*Úv/private/tmp/claude-502/-Users-aibot/7c1e3ba6-d022-4b1b-8026-9f6da66762d2/scratchpad/granthi-sync/tests/test_client.pyÚrun_gitrs;Ü >Š>˜5 Ð,¬t°D«zÕØ)-°D¼gô GßGMÁvÏeÉeËgðVócó6a]tRt^!toRtRtRtRtRtVt R#)ÚGitScenarioBasezDbare 'cloud' repo + two working clones to simulate device vs remote.cóÔ\P!RR7VnVP\P
VPRR7\ PPVPR4Vn \P!RRRRR VP.RR\R
7\ PPVPR 4Vn
\ P!VP4\P !VP4\#VPR R
RVP4\#VPRRR4\#VPRRR4R#)z
granthi-test-rT)Ú
ignore_errorsz cloud.gitrÚinitz--barez-bÚmain©rrrÚlocalÚremoteÚaddÚgranthiÚconfigú user.namerú
user.emailr
N)ÚtempfileÚmkdtempÚtmpÚ
addCleanupÚshutilÚrmtreeÚosÚpathÚjoinÚbarerrrr'ÚmakedirsrÚ ensure_repor©Úselfs&rÚsetUpÚGitScenarioBase.setUp$Ü×#¨?ÔŒØ œŸ
 t§x¡x¸tˆÔ—G‘G—L‘L §¡¨;ÓŒ ÜŠ˜˜v x°°v¸t¿y¹yÐ!°$¼Gõ Eä—W‘W—\\ $§(¡(¨GÓŒ
Ü
Š D—J‘JÔÜ×Ò˜4Ÿ:™:Ô
˜H e¨Y¸¿ ¹ Ô 
˜H k°3Ô
˜H l°EÖ:rcóÄ\\PPW4R4;_uu_4pVP V4RRR4R# +'giR#;i)ÚwN)Úopenr4r5r6Úwrite)r;ÚrepoÚnameÚcontentÚfs&&&& rrAÚGitScenarioBase.write3s9Ü
”"—''—,,˜*¨C×
0°AØ
G‰G ÷1×
0×
0ús ²AÁ A cóê\PPVPR4p\P
!RRVP V.RR\R7\VRRR4\VRRR 4V#)
ÚotherrÚcloneTr&r+r,Úor-zo@o) r4r5r6r0rrr7rr)r;rHs& rÚ other_cloneÚGitScenarioBase.other_clone7s]Ü ˜TŸX™X wÓÜŠ˜˜w¨¯ © °5ÐØ&*´õx ¨cÔx ¨uÔˆ r)r7r'r0N)
Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__Ú__doc__r<rArKÚ__static_attributes__Ú__classdictcell__©Ú
__classdict__s@rr!r!!sø‡Ù
÷ðrr!có,a]tRt^@toRtRtRtVtR#)ÚTestAutocommitcóVPVPRR4VP\P!VP44\ VPRRR4pVPVP
R4V4R#)úa.txtÚoneÚlogz-1z --format=%szsync: N)rAr'Ú
assertTruerÚ
autocommitrÚ
startswith)r;Úmsgs& rÚtest_autocommit_commits_changesÚ.TestAutocommit.test_autocommit_commits_changesAs\Ø
4—:‘:˜w¨Ô œ×)¨$¯*©*Ód—j‘j %¨¨}ÓØ ˜Ÿ xÓ0°#Ö6rcóÞVPVPRR4\P!VP4VP \P!VP44R#)rYrZN)rAr'rr]Ú assertFalser:s&rÚtest_autocommit_noop_when_cleanÚ.TestAutocommit.test_autocommit_noop_when_cleanGsEØ
4—:‘:˜w¨Ô×Ò˜$Ÿ*™*Ô ×Ñœ×*¨4¯:©:Ó7r©N)rMrNrOrPr`rdrRrSrTs@rrWrW@sø‡ò 8rrWcó8a]tRt^MtoRtRtRtRtRtVt R#)ÚTestSyncFolderc óøVPVPRR4\P!VP4wrVP VR4VP R\
VPRRR44R#)rYrZÚpushedzls-treez --name-onlyz granthi/mainN)rAr'rÚ sync_folderÚ assertEqualÚassertInr©r;ÚoutcomeÚ_s& rÚtest_initial_pushÚ TestSyncFolder.test_initial_pushNs^Ø
4—::˜Ôׯ
©
Ó3‰
ˆØ ×ј (Ô
gœw t§z¡z°9¸mØ'5ó 8rcó.VPVPRR4\P!VP4VP 4pVPVRR4\ VRR4\ VRRR4\ VR R
R 4\P!VP4wr#VP
W#3R
4VP\PP\PPVPR444R #)rYrZúb.txtz
from-otherr)ú-AÚcommitú-mú
remote changeÚpushÚoriginr%N)Úsyncedz ff-pulled) rAr'rrkrKrrlr\r4r5Úexistsr6)r;rHroÚdetails& rÚtest_ff_pull_when_remote_aheadÚ-TestSyncFolder.test_ff_pull_when_remote_aheadUØ
4—:‘:˜w¨Ô×Ò˜4Ÿ:™:Ô× Ñ Ó"ˆØ
5˜' u˜ Ôv˜x¨Ô ×,¨T¯Z©ZÓ8‰ˆØ ×ј'Ð*Ð,CÔ œŸŸ¤r§w¡w§|¡|°D·J±JÀÓ'HÓJrcó$VPVPRR4\P!VP4VP 4pVPVRR4\ VRR4\ VRRR4\ VR R
R 4\ VR R
4pVPVPRR4\P!VP4wr4VP
VR4\ VPR R 4pVP
WR4R#)rYrZrtz remote sider)rurvrwrxryrzr%z rev-parseÚHEADz
local sideÚdivergedN)rAr'rrkrKrrlr7)r;rHÚ
remote_sharorpÚbare_shas& rÚ%test_diverged_is_skipped_never_forcedÚ4TestSyncFolder.test_diverged_is_skipped_never_forcedaØ
4—:‘:˜w¨Ô×Ò˜4Ÿ:™:Ô× Ñ Ó"ˆØ
5˜' u˜ Ôv˜x¨Ô˜U K°Ó
Ø
4—::˜ Ôׯ
©
Ó3‰
ˆØ ×ј *Ô˜4Ÿ9™9 k°6ÓØ ×јÖ.rcóèVPVPRR4\P!VP4\P!VP4wrVP VR4R#)rYrZÚcleanN)rAr'rrkrlrns& rÚtest_clean_when_in_syncÚ&TestSyncFolder.test_clean_when_in_syncqsNØ
4—:‘:˜w¨Ô×Ò˜4Ÿ:™:Ôׯ
©
Ó3‰
ˆØ ×ј *rrfN)
rMrNrOrPrqr~r…r‰rRrSrTs@rrhrhMsø‡ò
Kò+rrhcó,a]tRt^xtoRtRtRtVtR#)Ú
TestConfigcó \P!RRR//4\P!\P4pVP VP R,R4VP \P!4R,R4R#)ÚloginÚfoldersiÿi€N)rÚ save_configr4ÚstatÚ CONFIG_PATHrlÚst_modeÚ load_config)r;Ústs& rÚtest_save_creates_0600Ú!TestConfig.test_save_creates_0600ysdÜ×Ò˜G S¨)°RÐ
WŠW”V×
Ø ×јŸ eÕ+¨UÔ ×Ñœ×-¨gÕ6¸Ö<rcóä\PP\RR4;_uu_4VP \P
!4/4RRR4R# +'giR#;i)r“z/nonexistent/nope.jsonN)rÚpatchÚobjectrrlr•r:s&rÚtest_load_missing_returns_emptyÚ*TestConfig.test_load_missing_returns_emptysEÜ
Z‰Z×
Ñ
œv }Ð6N×
× Ñ œV×1°2Ô P×