Skip to content

Commit b1bb639

Browse files
committed
🐛 FIX: non git repo in tests
1 parent f231548 commit b1bb639

File tree

3 files changed

+43
-16
lines changed

3 files changed

+43
-16
lines changed

scss_compile/__init__.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ def config_provider(file_path, cmd_name):
100100
show_default=True,
101101
help="Exit code when files changed.",
102102
)
103+
@click.option(
104+
"--git-add/--no-git-add",
105+
default=True,
106+
is_flag=True,
107+
show_default=True,
108+
help="Attempt to add new files to the git index (required by pre-commit).",
109+
)
103110
@click.option("--test-run", is_flag=True, help="Do not delete/create any files.")
104111
@click_config_file.configuration_option(
105112
provider=config_provider,
@@ -123,6 +130,7 @@ def run_compile(
123130
quiet,
124131
verbose,
125132
exit_code,
133+
git_add,
126134
test_run,
127135
):
128136
"""Compile all SCSS files in the paths provided.
@@ -239,15 +247,23 @@ def run_compile(
239247
css_out_path = out_dir / (out_name + ".css")
240248
if not test_run:
241249

242-
if update_file(css_out_path, css_str, encoding):
250+
if update_file(css_out_path, css_str, encoding, git_add):
243251
changed_files = True
244252
if sourcemap and update_file(
245-
out_dir / (scss_path.name + ".map.json"), sourcemap_str, encoding
253+
out_dir / (scss_path.name + ".map.json"),
254+
sourcemap_str,
255+
encoding,
256+
git_add,
246257
):
247258
changed_files = True
248259

249260
if not quiet:
250-
click.echo(f"Compiled: {str(scss_path)} -> {str(css_out_path)}")
261+
if changed_files:
262+
click.secho(
263+
f"Compiled: {str(scss_path)} -> {str(css_out_path)}", fg="blue"
264+
)
265+
elif verbose:
266+
click.echo(f"Already Exists: {str(scss_path)} -> {str(css_out_path)}")
251267

252268
if compilation_errors:
253269
raise click.ClickException(
@@ -263,13 +279,13 @@ def run_compile(
263279
sys.exit(exit_code)
264280

265281

266-
def update_file(path, text, encoding) -> bool:
282+
def update_file(path, text, encoding, git_add) -> bool:
267283

268284
if not path.exists():
269285
path.write_text(text, encoding=encoding)
270-
# this is required, to ensure creations are picked up by pre-commit
271-
# TODO ignore for non-git repositories?
272-
check_call(["git", "add", "--intent-to-add", str(path)])
286+
if git_add:
287+
# this is required, to ensure creations are picked up by pre-commit
288+
check_call(["git", "add", str(path)])
273289
return True
274290

275291
if text != path.read_text(encoding=encoding):

tests/example_scss/example2.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
div {
2-
color: blue;
2+
color: green;
33
}

tests/test_run_compile.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,33 @@ def test_help():
2121

2222

2323
def test_file(scss_folder):
24-
result = CliRunner().invoke(run_compile, [str(scss_folder / "example1.scss")])
24+
result = CliRunner().invoke(
25+
run_compile, ["--no-git-add", str(scss_folder / "example1.scss")]
26+
)
2527
assert result.exit_code == 2, result.output
2628
assert (scss_folder / "example1.css").exists(), result.output
2729

2830
# should not change any files
29-
result = CliRunner().invoke(run_compile, [str(scss_folder / "example1.scss")])
31+
result = CliRunner().invoke(
32+
run_compile, ["--no-git-add", str(scss_folder / "example1.scss")]
33+
)
3034
assert result.exit_code == 0, result.output
3135
assert (scss_folder / "example1.css").exists(), result.output
3236

3337

3438
def test_file_hash(scss_folder):
3539
result = CliRunner().invoke(
36-
run_compile, [str(scss_folder / "example1.scss"), "--hash-filenames"]
40+
run_compile,
41+
["--no-git-add", str(scss_folder / "example1.scss"), "--hash-filenames"],
3742
)
3843
assert result.exit_code == 2, result.output
3944
assert len(list(scss_folder.glob("example1#*.css"))) == 1, result.output
4045
path = list(scss_folder.glob("example1#*.css"))[0]
4146

4247
# should create same hash
4348
result = CliRunner().invoke(
44-
run_compile, [str(scss_folder / "example1.scss"), "--hash-filenames"]
49+
run_compile,
50+
["--no-git-add", str(scss_folder / "example1.scss"), "--hash-filenames"],
4551
)
4652
assert result.exit_code == 0, result.output
4753
assert len(list(scss_folder.glob("example1#*.css"))) == 1, result.output
@@ -50,7 +56,7 @@ def test_file_hash(scss_folder):
5056

5157
def test_file_sourcemap(scss_folder):
5258
result = CliRunner().invoke(
53-
run_compile, [str(scss_folder / "example1.scss"), "--sourcemap"]
59+
run_compile, ["--no-git-add", str(scss_folder / "example1.scss"), "--sourcemap"]
5460
)
5561
assert result.exit_code == 2, result.output
5662
assert (scss_folder / "example1.css").exists(), result.output
@@ -59,21 +65,25 @@ def test_file_sourcemap(scss_folder):
5965

6066
def test_partials(scss_folder):
6167
result = CliRunner().invoke(
62-
run_compile, [str(scss_folder / "partials" / "_example1.scss")]
68+
run_compile, ["--no-git-add", str(scss_folder / "partials" / "_example1.scss")]
6369
)
6470
assert result.exit_code == 0, result.output
6571
assert not (scss_folder / "example1.css").exists(), result.output
6672

6773
result = CliRunner().invoke(
6874
run_compile,
69-
[str(scss_folder / "partials" / "_example1.scss"), "--partial-depth=1"],
75+
[
76+
"--no-git-add",
77+
str(scss_folder / "partials" / "_example1.scss"),
78+
"--partial-depth=1",
79+
],
7080
)
7181
assert result.exit_code == 2, result.output
7282
assert (scss_folder / "example1.css").exists(), result.output
7383

7484

7585
def test_folder(scss_folder):
76-
result = CliRunner().invoke(run_compile, [str(scss_folder)])
86+
result = CliRunner().invoke(run_compile, ["--no-git-add", str(scss_folder)])
7787
assert result.exit_code == 2, result.output
7888
assert (scss_folder / "example1.css").exists(), result.output
7989
assert (scss_folder / "example2.css").exists(), result.output
@@ -83,6 +93,7 @@ def test_translate(scss_folder):
8393
result = CliRunner().invoke(
8494
run_compile,
8595
[
96+
"--no-git-add",
8697
str(scss_folder / "example1.scss"),
8798
"--translate",
8899
str(scss_folder) + ":" + str(scss_folder.parent / "css"),

0 commit comments

Comments
 (0)