diff options
Diffstat (limited to 'tools/setup_test.py')
-rw-r--r-- | tools/setup_test.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/setup_test.py b/tools/setup_test.py new file mode 100644 index 000000000..670bf33db --- /dev/null +++ b/tools/setup_test.py @@ -0,0 +1,61 @@ +# Copyright 2018 the Deno authors. All rights reserved. MIT license. + +import os +from setup import read_gn_args, write_gn_args +from shutil import rmtree +from tempfile import mktemp + + +def read_gn_args_test(): + # Args file doesn't exist. + (args, hand_edited) = read_gn_args("/baddir/hopefully/nonexistent/args.gn") + assert args is None + assert hand_edited == False + + # Handwritten empty args file. + filename = mktemp() + with open(filename, "w"): + pass + (args, hand_edited) = read_gn_args(filename) + os.remove(filename) + assert args == [] + assert hand_edited == True + + # Handwritten non-empty args file. + expect_args = ['some_number=2', 'another_string="ran/dom#yes"'] + filename = mktemp() + with open(filename, "w") as f: + f.write("\n".join(expect_args + ["", "# A comment to be ignored"])) + (args, hand_edited) = read_gn_args(filename) + os.remove(filename) + assert args == expect_args + assert hand_edited == True + + +def write_gn_args_test(): + # Build a nonexistent path; write_gn_args() should call mkdir as needed. + dir = mktemp() + filename = os.path.join(dir, "args.gn") + assert not os.path.exists(dir) + assert not os.path.exists(filename) + # Write some args. + args = ['lalala=42', 'foo_bar_baz="lorem ipsum dolor#amet"'] + write_gn_args(filename, args) + # Directory and args file should now be created. + assert os.path.isdir(dir) + assert os.path.isfile(filename) + # Validate that the right contents were written. + (check_args, hand_edited) = read_gn_args(filename) + assert check_args == args + assert hand_edited == False + # Clean up. + rmtree(dir) + + +def setup_test(): + read_gn_args_test() + write_gn_args_test() + + +if __name__ == '__main__': + setup_test() |