1
+ import os
1
2
from pathlib import Path
2
3
import shutil
3
4
4
5
from click .testing import CliRunner
6
+ from git import Repo
5
7
import pytest
6
8
7
9
from scss_compile import run_compile
8
10
9
11
10
12
@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."""
12
15
src = tmp_path / "scss"
13
16
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 )
14
21
yield src
22
+ os .chdir (original_cwd )
15
23
shutil .rmtree (tmp_path )
16
24
17
25
@@ -20,25 +28,22 @@ def test_help():
20
28
assert result .exit_code == 0 , result .output
21
29
22
30
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" ])
27
33
assert result .exit_code == 2 , result .output
28
34
assert (scss_folder / "example1.css" ).exists (), result .output
35
+ assert len (Repo (scss_folder .parent ).index .diff ("HEAD" )) == 1
29
36
30
37
# 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" )])
34
39
assert result .exit_code == 0 , result .output
35
40
assert (scss_folder / "example1.css" ).exists (), result .output
36
41
37
42
38
- def test_file_hash (scss_folder ):
43
+ def test_file_hash (scss_folder : Path ):
39
44
result = CliRunner ().invoke (
40
45
run_compile ,
41
- ["--no-git-add" , str (scss_folder / "example1.scss" ), "--hash-filenames" ],
46
+ [str (scss_folder / "example1.scss" ), "--hash-filenames" ],
42
47
)
43
48
assert result .exit_code == 2 , result .output
44
49
assert len (list (scss_folder .glob ("example1#*.css" ))) == 1 , result .output
@@ -47,33 +52,32 @@ def test_file_hash(scss_folder):
47
52
# should create same hash
48
53
result = CliRunner ().invoke (
49
54
run_compile ,
50
- ["--no-git-add" , str (scss_folder / "example1.scss" ), "--hash-filenames" ],
55
+ [str (scss_folder / "example1.scss" ), "--hash-filenames" ],
51
56
)
52
57
assert result .exit_code == 0 , result .output
53
58
assert len (list (scss_folder .glob ("example1#*.css" ))) == 1 , result .output
54
59
assert path .exists (), result .output
55
60
56
61
57
- def test_file_sourcemap (scss_folder ):
62
+ def test_file_sourcemap (scss_folder : Path ):
58
63
result = CliRunner ().invoke (
59
- run_compile , ["--no-git-add" , str (scss_folder / "example1.scss" ), "--sourcemap" ]
64
+ run_compile , [str (scss_folder / "example1.scss" ), "--sourcemap" ]
60
65
)
61
66
assert result .exit_code == 2 , result .output
62
67
assert (scss_folder / "example1.css" ).exists (), result .output
63
68
assert (scss_folder / "example1.scss.map.json" ).exists (), result .output
64
69
65
70
66
- def test_partials (scss_folder ):
71
+ def test_partials (scss_folder : Path ):
67
72
result = CliRunner ().invoke (
68
- run_compile , ["--no-git-add" , str (scss_folder / "partials" / "_example1.scss" )]
73
+ run_compile , [str (scss_folder / "partials" / "_example1.scss" )]
69
74
)
70
75
assert result .exit_code == 0 , result .output
71
76
assert not (scss_folder / "example1.css" ).exists (), result .output
72
77
73
78
result = CliRunner ().invoke (
74
79
run_compile ,
75
80
[
76
- "--no-git-add" ,
77
81
str (scss_folder / "partials" / "_example1.scss" ),
78
82
"--partial-depth=1" ,
79
83
],
@@ -82,18 +86,18 @@ def test_partials(scss_folder):
82
86
assert (scss_folder / "example1.css" ).exists (), result .output
83
87
84
88
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 )])
87
91
assert result .exit_code == 2 , result .output
88
92
assert (scss_folder / "example1.css" ).exists (), result .output
89
93
assert (scss_folder / "example2.css" ).exists (), result .output
94
+ assert len (Repo (scss_folder .parent ).index .diff ("HEAD" )) == 2
90
95
91
96
92
- def test_translate (scss_folder ):
97
+ def test_translate (scss_folder : Path ):
93
98
result = CliRunner ().invoke (
94
99
run_compile ,
95
100
[
96
- "--no-git-add" ,
97
101
str (scss_folder / "example1.scss" ),
98
102
"--translate" ,
99
103
str (scss_folder ) + ":" + str (scss_folder .parent / "css" ),
0 commit comments