#!/usr/bin/env python # # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file # for details. All rights reserved. Use of this source code is governed by a # BSD-style license that can be found in the LICENSE file. # """Unit tests for make_bundle.py.""" import os from os import path import shutil import subprocess import sys import tempfile import unittest import make_bundle class BundleMakerTest(unittest.TestCase): """Unit test class for BundleMaker.""" def setUp(self): self._tempdir = tempfile.mkdtemp() self._top_dir = path.normpath(path.join(path.dirname(sys.argv[0]), os.pardir)) self._dest = path.join(self._tempdir, 'new_bundle') def tearDown(self): shutil.rmtree(self._tempdir) def testBuildOptions(self): op = make_bundle.BundleMaker.BuildOptions() op.parse_args(args=[]) def testCheckOptions(self): op = make_bundle.BundleMaker.BuildOptions() options = make_bundle.BundleMaker.CheckOptions(op, self._top_dir, ['--dest', self._dest]) self.failUnless(path.exists(self._dest)) os.rmdir(self._dest) self.assertEquals(self._dest, options['dest']) self.assertEquals(self._top_dir, options['top_dir']) self.failIf(options['verbose']) self.failIf(options['skip_build']) options = make_bundle.BundleMaker.CheckOptions(op, self._top_dir, ['--dest', self._dest, '-v']) self.failUnless(path.exists(self._dest)) self.assertEquals(self._dest, options['dest']) self.assertEquals(self._top_dir, options['top_dir']) self.failUnless(options['verbose']) self.failIf(options['skip_build']) def _RunCommand(self, *args): proc = subprocess.Popen(args, cwd=self._dest, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) stdout = proc.communicate()[0] self.assertEqual(0, proc.wait(), msg='%s\n%s' % (' '.join(args), stdout)) def testMakeBundle(self): os.mkdir(self._dest) maker = make_bundle.BundleMaker(dest=self._dest, top_dir=self._top_dir) self.assertEquals(0, maker.MakeBundle()) commands = [ './dart samples/hello.dart', './dart samples/deltablue.dart', './dart samples/mandelbrot.dart', './dart samples/towers.dart', ] for command in commands: args = command.split(' ') self._RunCommand(*args) args.append('--arch=dartc') self._RunCommand(*args) if __name__ == '__main__': unittest.main()