Skip to content

Commit 6014ebd

Browse files
authored
Merge pull request #2707 from pre-commit/dart-tests
test dart directly
2 parents 2bd853e + 043565d commit 6014ebd

File tree

5 files changed

+62
-60
lines changed

5 files changed

+62
-60
lines changed

testing/resources/dart_repo/.pre-commit-hooks.yaml

Lines changed: 0 additions & 4 deletions
This file was deleted.

testing/resources/dart_repo/bin/hello-world-dart.dart

Lines changed: 0 additions & 6 deletions
This file was deleted.

testing/resources/dart_repo/pubspec.yaml

Lines changed: 0 additions & 10 deletions
This file was deleted.

tests/languages/dart_test.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from __future__ import annotations
2+
3+
import re_assert
4+
5+
from pre_commit.languages import dart
6+
from pre_commit.store import _make_local_repo
7+
from testing.language_helpers import run_language
8+
9+
10+
def test_dart(tmp_path):
11+
pubspec_yaml = '''\
12+
environment:
13+
sdk: '>=2.10.0 <3.0.0'
14+
15+
name: hello_world_dart
16+
17+
executables:
18+
hello-world-dart:
19+
20+
dependencies:
21+
ansicolor: ^2.0.1
22+
'''
23+
hello_world_dart_dart = '''\
24+
import 'package:ansicolor/ansicolor.dart';
25+
26+
void main() {
27+
AnsiPen pen = new AnsiPen()..red();
28+
print("hello hello " + pen("world"));
29+
}
30+
'''
31+
tmp_path.joinpath('pubspec.yaml').write_text(pubspec_yaml)
32+
bin_dir = tmp_path.joinpath('bin')
33+
bin_dir.mkdir()
34+
bin_dir.joinpath('hello-world-dart.dart').write_text(hello_world_dart_dart)
35+
36+
expected = (0, b'hello hello world\n')
37+
assert run_language(tmp_path, dart, 'hello-world-dart') == expected
38+
39+
40+
def test_dart_additional_deps(tmp_path):
41+
_make_local_repo(str(tmp_path))
42+
43+
ret = run_language(
44+
tmp_path,
45+
dart,
46+
'hello-world-dart',
47+
deps=('hello_world_dart',),
48+
)
49+
assert ret == (0, b'hello hello world\n')
50+
51+
52+
def test_dart_additional_deps_versioned(tmp_path):
53+
_make_local_repo(str(tmp_path))
54+
55+
ret, out = run_language(
56+
tmp_path,
57+
dart,
58+
'secure-random -l 4 -b 16',
59+
deps=('encrypt:5.0.0',),
60+
)
61+
assert ret == 0
62+
re_assert.Matches('^[a-f0-9]{8}\n$').assert_matches(out.decode())

tests/repository_test.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -997,46 +997,6 @@ def test_dotnet_hook(tempdir_factory, store, repo):
997997
)
998998

999999

1000-
def test_dart_hook(tempdir_factory, store):
1001-
_test_hook_repo(
1002-
tempdir_factory, store, 'dart_repo',
1003-
'hello-world-dart', [], b'hello hello world\n',
1004-
)
1005-
1006-
1007-
def test_local_dart_additional_dependencies(store):
1008-
config = {
1009-
'repo': 'local',
1010-
'hooks': [{
1011-
'id': 'local-dart',
1012-
'name': 'local-dart',
1013-
'entry': 'hello-world-dart',
1014-
'language': 'dart',
1015-
'additional_dependencies': ['hello_world_dart'],
1016-
}],
1017-
}
1018-
hook = _get_hook(config, store, 'local-dart')
1019-
ret, out = _hook_run(hook, (), color=False)
1020-
assert (ret, _norm_out(out)) == (0, b'hello hello world\n')
1021-
1022-
1023-
def test_local_dart_additional_dependencies_versioned(store):
1024-
config = {
1025-
'repo': 'local',
1026-
'hooks': [{
1027-
'id': 'local-dart',
1028-
'name': 'local-dart',
1029-
'entry': 'secure-random -l 4 -b 16',
1030-
'language': 'dart',
1031-
'additional_dependencies': ['encrypt:5.0.0'],
1032-
}],
1033-
}
1034-
hook = _get_hook(config, store, 'local-dart')
1035-
ret, out = _hook_run(hook, (), color=False)
1036-
assert ret == 0
1037-
re_assert.Matches('^[a-f0-9]{8}\r?\n$').assert_matches(out.decode())
1038-
1039-
10401000
def test_non_installable_hook_error_for_language_version(store, caplog):
10411001
config = {
10421002
'repo': 'local',

0 commit comments

Comments
 (0)