summaryrefslogtreecommitdiff
path: root/tools/fmt_test.py
blob: 042dd8a64cf1272f5d7f8bfef56f78a34c171bf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
import os
import sys
from util import mkdtemp, root_path, tests_path, run, green_ok
import shutil
import json


def fmt_test(deno_exe):
    sys.stdout.write("fmt_test...")
    sys.stdout.flush()
    d = mkdtemp()
    try:
        fixed_filename = os.path.join(tests_path, "badly_formatted_fixed.js")
        src = os.path.join(tests_path, "badly_formatted.js")
        dst = os.path.join(d, "badly_formatted.js")
        shutil.copyfile(src, dst)
        # Set DENO_DIR to //js/ so we don't have to rely on an intenet
        # connection to download https://deno.land/std/prettier/main.ts
        deno_dir = os.path.join(root_path, "js")
        # TODO(kt3k) The below line should be run([deno_exe, "fmt", dst], ...)
        # It should be updated when the below issue is addressed
        # https://github.com/denoland/deno_std/issues/330
        run([os.path.join(root_path, deno_exe), "fmt", "badly_formatted.js"],
            cwd=d,
            merge_env={"DENO_DIR": deno_dir})
        with open(fixed_filename) as f:
            expected = f.read()
        with open(dst) as f:
            actual = f.read()
        if expected != actual:
            print "Expected didn't match actual."
            print "expected: ", json.dumps(expected)
            print "actual: ", json.dumps(actual)
            sys.exit(1)

    finally:
        shutil.rmtree(d)
    print green_ok()


if __name__ == "__main__":
    fmt_test(sys.argv[1])