def test_layer_add_fail_2(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) os.chmod('.git/refs/heads', stat.S_IREAD) with stdchannels_redirected(): self.assertIsNotNone(main(['xd', 'layer', 'add', 'build/core'])) os.chmod('.git/refs/heads', stat.S_IRWXU)
def test_layer_status_1_layer(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNone(main(['xd', 'layer', 'add', 'build/core'])) self.assertIsNone(main(['xd', 'layer', 'status'])) stdout_lines = sys.stdout.getvalue().splitlines() self.assertRegex(stdout_lines[-1], 'build/core .*')
def test_layer_status_non_layer_submodule(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNone(main(['xd', 'layer', 'add', 'build/core'])) os.unlink(os.path.join('build', 'core', '.xd')) self.assertIsNone(main(['xd', 'layer', 'status'])) stdout_lines = sys.stdout.getvalue().splitlines() self.assertNotRegex(stdout_lines[-1], '%sbuild/core .*'%(os.linesep))
def test_init_twice(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertTrue(os.path.isdir('.git')) self.assertTrue(os.path.isfile('.xd')) with stdchannels_redirected(): self.assertIsNone(main(['xd', '-d', 'init'])) self.assertTrue(os.path.isdir('.git')) self.assertTrue(os.path.isfile('.xd'))
def test_layer_status_manifest_layer(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) config = configparser.ConfigParser() config.read('.xd') config.add_section('layer') with open('.xd', 'w') as f: config.write(f) sh.git.remote.add('origin', 'URL') self.assertIsNone(main(['xd', 'layer', 'status'])) stdout_lines = sys.stdout.getvalue().splitlines() self.assertRegex(stdout_lines[-1], '. +URL')
def test_main_no_args(self): main(['xd'])
def test_main_early_args(self): with stdchannels_redirected(): main(['xd', '-d'])
def test_init_fail_4(self): sh.git.init() os.chmod('.git/refs/heads', stat.S_IREAD) with stdchannels_redirected(): self.assertNotEqual(main(['xd', 'init']), None)
def test_init_fail_3(self): os.chmod('.', stat.S_IREAD|stat.S_IEXEC) with stdchannels_redirected(): self.assertNotEqual(main(['xd', 'init']), None)
def test_init_fail_2(self): with open('.git', 'w') as f: f.write('foobar') with open('.xd', 'w') as f: f.write('foobar') self.assertNotEqual(main(['xd', 'init']), None)
def test_init_fail_1(self): with open('.git', 'w') as f: f.write('foobar') with stdchannels_redirected(): self.assertNotEqual(main(['xd', 'init']), None)
def test_layer_status_empty(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNone(main(['xd', 'layer', 'status']))
def test_layer_nosubcmd(self): main(['xd', 'layer']) self.assertRegex(sys.stdout.getvalue(), 'usage: ')
def test_layer_list(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNone(main(['xd', 'layer', 'list']))
def test_layer_add_unknown(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNotNone(main(['xd', 'layer', 'add', 'FOOBAR']))
def test_layer_add_none(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) with self.assertRaises(SystemExit): main(['xd', 'layer', 'add'])
def test_layer_add(self): with stdchannels_redirected(): self.assertIsNone(main(['xd', 'init'])) self.assertIsNone(main(['xd', 'layer', 'add', 'build/core']))
def test_layer_list_no_manifest(self): with self.assertLogs('xd.tool.cmd.layer', level='ERROR') as logs: with stdchannels_redirected(): self.assertEqual(main(['xd', 'layer', 'list']), 1) self.assertEqual(logs.records[0].message, 'Manifest not found')