def test_build(self): self.maxDiff = None with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) root = n.dir() src = n.dir('src') tmp = n.dir('tmp') n.cmd('copy', '/path/cp', '${in} ${out}', description='copy file') a = root('file1.txt').copy(tmp('file2.txt')) a.copy(os.path.join('${root}', 'file3.txt')) result = generate_ninja(n, newline=False) self.assertEqual(result, expected[3])
def test_dir(self): self.maxDiff = None with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) root = n.root tmp = n.dir('tmp') dst = n.dir('dst', 'dir1', var='dst') n.cmd('copy', '/path/cp', '${in} ${out}', description='copy file') root('file1.txt').copy(tmp('file2.txt')) root('file3.txt').copy(dst('file4.txt')) result = generate_ninja(n, newline=False) self.assertEqual(result, expected[2])
def test_exec_cmd(self): self.maxDiff = None with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) root = n.dir() n.exec_cmd('cmd1', 'bin1', '${in} ${out}') n.target('target').cmd1() result = generate_ninja(n, newline=False) self.assertEqual(result, expected[5])
def test_phony(self): self.maxDiff = None with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) root = n.dir() n.cmd('cmd1', 'bin1', '${in} ${out}') a = root('file1.txt').cmd1(root('file2.txt')) b = root('file3.txt').cmd1(outputs=2) n.target('one').phony(a) n.target('all').phony(n.files(a, b)) result = generate_ninja(n, newline=False) self.assertEqual(result, expected[4])
def test_multiple_outputs(self): with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) src = n.dir('src') n.cmd('cmd1', 'bin1', '${in} ${out}') n.cmd('cmd2', 'bin2', '${in} ${out}') a = src('a.txt') b = a.cmd1(outputs=2) c = b.cmd2() result = generate_ninja(n, newline=False) self.assertEqual(result, expected[2])
def test_pipeline(self): with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) src = n.dir('src') n.cmd('cmd1', 'bin1', '${in} ${out}') n.cmd('cmd2', 'bin2', '${in} ${out}') n.cmd('cmd3', 'bin3', '${in} ${out}') input = src('a.txt') output = n.builddir('b.txt') input.cmd1().cmd2().cmd3(output) result = generate_ninja(n, newline=False) self.assertEqual(result, expected[0])
def test_inputs_from_multiple_commands(self): with warnings.catch_warnings(): warnings.simplefilter('ignore', category=NinjuWarning) n = Ninju(no_cwd_check=True) src = n.dir('src') n.cmd('cmd1', 'bin1', '${in} ${out}') n.cmd('cmd2', 'bin2', '${in} ${out}') n.cmd('cmd3', 'bin3', '${in} ${out}') a = src('a.txt') b = src('b.txt') c = a.cmd1() d = b.cmd2() e = n.files(c, d).cmd3() result = generate_ninja(n, newline=False) self.assertEqual(result, expected[1])
#!/usr/bin/env python import os import sys sourcedir = os.path.dirname(os.path.realpath(__file__)) sys.path.insert(0, os.path.join(sourcedir, '../src')) from ninju import Ninju n = Ninju() # all directories are relative to $ROOT tmp = n.dir('tmp') scriptdir = n.dir('scripts', var='scriptdir') data_panitia_PTN1 = n.dir('data', 'DataPendaftaran') data_panitia_PTN2 = n.dir('data', 'DataPendaftaranPTN2') n.cmd( 'convert_data_panitia', '${scriptdir}/convert-data-panitia.sh', # '${in} ${out} ${dlm}', description='Convert CSV from Panitia ${in}') n.cmd('union_data', '${scriptdir}/union-data.sh', '${in} ${out}', description='Combine data ${in}') n.exec_cmd('mycmd', 'cmd', '${in}') n.target('xxx').mycmd()