1+ import os
12from pathlib import Path
23import shutil
34
45from click .testing import CliRunner
6+ from git import Repo
57import pytest
68
79from scss_compile import run_compile
810
911
1012@pytest .fixture ()
11- def scss_folder (tmp_path ):
13+ def scss_folder (tmp_path : Path ) -> Path :
14+ """Copy the scss folder to a temporary folder, and initialise it as git repo."""
1215 src = tmp_path / "scss"
1316 shutil .copytree (Path (__file__ ).parent / "example_scss" , src )
17+ repo = Repo .init (str (tmp_path ))
18+ repo .index .commit ("initial commit" )
19+ original_cwd = os .getcwd ()
20+ os .chdir (tmp_path )
1421 yield src
22+ os .chdir (original_cwd )
1523 shutil .rmtree (tmp_path )
1624
1725
@@ -20,25 +28,22 @@ def test_help():
2028 assert result .exit_code == 0 , result .output
2129
2230
23- def test_file (scss_folder ):
24- result = CliRunner ().invoke (
25- run_compile , ["--no-git-add" , str (scss_folder / "example1.scss" )]
26- )
31+ def test_file (scss_folder : Path ):
32+ result = CliRunner ().invoke (run_compile , [str (scss_folder / "example1.scss" ), "-v" ])
2733 assert result .exit_code == 2 , result .output
2834 assert (scss_folder / "example1.css" ).exists (), result .output
35+ assert len (Repo (scss_folder .parent ).index .diff ("HEAD" )) == 1
2936
3037 # should not change any files
31- result = CliRunner ().invoke (
32- run_compile , ["--no-git-add" , str (scss_folder / "example1.scss" )]
33- )
38+ result = CliRunner ().invoke (run_compile , [str (scss_folder / "example1.scss" )])
3439 assert result .exit_code == 0 , result .output
3540 assert (scss_folder / "example1.css" ).exists (), result .output
3641
3742
38- def test_file_hash (scss_folder ):
43+ def test_file_hash (scss_folder : Path ):
3944 result = CliRunner ().invoke (
4045 run_compile ,
41- ["--no-git-add" , str (scss_folder / "example1.scss" ), "--hash-filenames" ],
46+ [str (scss_folder / "example1.scss" ), "--hash-filenames" ],
4247 )
4348 assert result .exit_code == 2 , result .output
4449 assert len (list (scss_folder .glob ("example1#*.css" ))) == 1 , result .output
@@ -47,33 +52,32 @@ def test_file_hash(scss_folder):
4752 # should create same hash
4853 result = CliRunner ().invoke (
4954 run_compile ,
50- ["--no-git-add" , str (scss_folder / "example1.scss" ), "--hash-filenames" ],
55+ [str (scss_folder / "example1.scss" ), "--hash-filenames" ],
5156 )
5257 assert result .exit_code == 0 , result .output
5358 assert len (list (scss_folder .glob ("example1#*.css" ))) == 1 , result .output
5459 assert path .exists (), result .output
5560
5661
57- def test_file_sourcemap (scss_folder ):
62+ def test_file_sourcemap (scss_folder : Path ):
5863 result = CliRunner ().invoke (
59- run_compile , ["--no-git-add" , str (scss_folder / "example1.scss" ), "--sourcemap" ]
64+ run_compile , [str (scss_folder / "example1.scss" ), "--sourcemap" ]
6065 )
6166 assert result .exit_code == 2 , result .output
6267 assert (scss_folder / "example1.css" ).exists (), result .output
6368 assert (scss_folder / "example1.scss.map.json" ).exists (), result .output
6469
6570
66- def test_partials (scss_folder ):
71+ def test_partials (scss_folder : Path ):
6772 result = CliRunner ().invoke (
68- run_compile , ["--no-git-add" , str (scss_folder / "partials" / "_example1.scss" )]
73+ run_compile , [str (scss_folder / "partials" / "_example1.scss" )]
6974 )
7075 assert result .exit_code == 0 , result .output
7176 assert not (scss_folder / "example1.css" ).exists (), result .output
7277
7378 result = CliRunner ().invoke (
7479 run_compile ,
7580 [
76- "--no-git-add" ,
7781 str (scss_folder / "partials" / "_example1.scss" ),
7882 "--partial-depth=1" ,
7983 ],
@@ -82,18 +86,18 @@ def test_partials(scss_folder):
8286 assert (scss_folder / "example1.css" ).exists (), result .output
8387
8488
85- def test_folder (scss_folder ):
86- result = CliRunner ().invoke (run_compile , ["--no-git-add" , str (scss_folder )])
89+ def test_folder (scss_folder : Path ):
90+ result = CliRunner ().invoke (run_compile , [str (scss_folder )])
8791 assert result .exit_code == 2 , result .output
8892 assert (scss_folder / "example1.css" ).exists (), result .output
8993 assert (scss_folder / "example2.css" ).exists (), result .output
94+ assert len (Repo (scss_folder .parent ).index .diff ("HEAD" )) == 2
9095
9196
92- def test_translate (scss_folder ):
97+ def test_translate (scss_folder : Path ):
9398 result = CliRunner ().invoke (
9499 run_compile ,
95100 [
96- "--no-git-add" ,
97101 str (scss_folder / "example1.scss" ),
98102 "--translate" ,
99103 str (scss_folder ) + ":" + str (scss_folder .parent / "css" ),
0 commit comments