def _make(self, name, block='_all'): """ An internal method used by :`~rules.RuleCloth.fetch()` to process content from :attr:`~rules.RuleCloth.rules` and return :meth:`~cloth.BuildCloth.get_block()` in Makefile format. """ rule = self.rules[name] m = MakefileCloth() for cmd in rule['command']: m.job(cmd, block=block) m.msg(rule['description'], block=block) if 'depfile' in rule: m.raw(['include ' + rule['depfile']], block=block) return m.get_block(block)
class TestMakefileBuilderJobMethod(TestCase): @classmethod def setUp(self): self.m = MakefileCloth() self.job = 'git update-index --assume-unchanged' self.job_make = '\t' + self.job self.job_quiet = '\t@' + self.job self.job_ignore = '\t-' + self.job self.job_quiet_ignore = '\t@-' + self.job def test_job_default(self): self.m.job(self.job, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet) def test_job_ignored_named(self): self.m.job(self.job, ignore=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet_ignore) def test_job_ignored_positional(self): self.m.job(self.job, False, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet_ignore) def test_job_unquiet_named(self): self.m.job(self.job, display=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_make) def test_job_unquiet_positional(self): self.m.job(self.job, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_make) def test_job_unquiet_ignored_positional(self): self.m.job(self.job, True, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_ignore) def test_job_unquiet_ignored_named(self): self.m.job(self.job, display=True, ignore=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_ignore) def test_job_invalid_dict_job(self): with self.assertRaises(MalformedContent): self.m.job({'a': 'string'}, block='test') def test_job_invalid_num(self): with self.assertRaises(MalformedContent): self.m.job(1, block='test') def test_job_invalid_nested_list(self): with self.assertRaises(MalformedContent): self.m.job([ 'a', [ 'a', '1'] ], block='test') def test_job_list(self): jobs = ['a', 'b'] builder = ['\t@a', '\t@b'] self.m.job(jobs, block='job-list') self.assertEqual(self.m.get_block('job-list'), builder)
class TestMakefileBuilderJobMethod(TestCase): @classmethod def setUp(self): self.m = MakefileCloth() self.job = 'git update-index --assume-unchanged' self.job_make = '\t' + self.job self.job_quiet = '\t@' + self.job self.job_ignore = '\t-' + self.job self.job_quiet_ignore = '\t@-' + self.job def test_job_default(self): self.m.job(self.job, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet) def test_job_ignored_named(self): self.m.job(self.job, ignore=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet_ignore) def test_job_ignored_positional(self): self.m.job(self.job, False, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_quiet_ignore) def test_job_unquiet_named(self): self.m.job(self.job, display=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_make) def test_job_unquiet_positional(self): self.m.job(self.job, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_make) def test_job_unquiet_ignored_positional(self): self.m.job(self.job, True, True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_ignore) def test_job_unquiet_ignored_named(self): self.m.job(self.job, display=True, ignore=True, block='test') self.assertEqual(self.m.get_block('test')[0], self.job_ignore) def test_job_invalid_dict_job(self): with self.assertRaises(MalformedContent): self.m.job({'a': 'string'}, block='test') def test_job_invalid_num(self): with self.assertRaises(MalformedContent): self.m.job(1, block='test') def test_job_invalid_nested_list(self): with self.assertRaises(MalformedContent): self.m.job(['a', ['a', '1']], block='test') def test_job_list(self): jobs = ['a', 'b'] builder = ['\t@a', '\t@b'] self.m.job(jobs, block='job-list') self.assertEqual(self.m.get_block('job-list'), builder)