def test_stage_ran_twice_is_a_noop(self): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertEqual( 'Pulling stage0 \n' 'Building stage0 \n' 'Staging stage0 \n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.verify_state('build0', parts[0]['state_dir'], 'stage') fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) stage.main() self.assertEqual( 'Skipping pull stage0 (already ran)\n' 'Skipping build stage0 (already ran)\n' 'Skipping stage stage0 (already ran)\n', fake_logger.output)
def test_stage_one_part_only_from_3(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml(n=3) stage.main(['stage1', ]) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[1]['part_dir']), 'Expected a part directory for the stage1 part') self.assertTrue(os.path.exists(parts[1]['state_file']), 'Expected a state file for the stage1 part') with open(parts[1]['state_file']) as sf: state = sf.readlines() self.assertEqual(len(state), 1, 'Expected only one line in the state ' 'file for the stage1 part') self.assertEqual(state[0], 'stage', "Expected the state file for " " stage1 to be 'stage'") for i in [0, 2]: self.assertFalse(os.path.exists(parts[i]['part_dir']), 'Pulled wrong part') self.assertFalse(os.path.exists(parts[i]['state_file']), 'Expected for only to be a state file for build1')
def test_stage_one_part_only_from_3(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml(n=3) stage.main([ 'stage1', ]) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[1]['part_dir']), 'Expected a part directory for the stage1 part') self.assertTrue(os.path.exists(parts[1]['state_file']), 'Expected a state file for the stage1 part') with open(parts[1]['state_file']) as sf: state = sf.readlines() self.assertEqual( len(state), 1, 'Expected only one line in the state ' 'file for the stage1 part') self.assertEqual( state[0], 'stage', "Expected the state file for " " stage1 to be 'stage'") for i in [0, 2]: self.assertFalse(os.path.exists(parts[i]['part_dir']), 'Pulled wrong part') self.assertFalse( os.path.exists(parts[i]['state_file']), 'Expected for only to be a state file for build1')
def test_stage_invalid_part(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) self.make_snapcraft_yaml() with self.assertRaises(EnvironmentError) as raised: stage.main(['no-stage', ]) self.assertEqual( raised.exception.__str__(), "The part named 'no-stage' is not defined in 'snapcraft.yaml'")
def test_stage_invalid_part(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) self.make_snapcraft_yaml() with self.assertRaises(EnvironmentError) as raised: stage.main([ 'no-stage', ]) self.assertEqual( raised.exception.__str__(), "The part named 'no-stage' is not defined in 'snapcraft.yaml'")
def test_stage_defaults(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.verify_state('build0', parts[0]['state_dir'], 'stage')
def test_stage_one_part_only_from_3(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml(n=3) stage.main(['stage1', ]) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[1]['part_dir']), 'Expected a part directory for the stage1 part') self.verify_state('stage1', parts[1]['state_dir'], 'stage') for i in [0, 2]: self.assertFalse(os.path.exists(parts[i]['part_dir']), 'Pulled wrong part') self.assertFalse(os.path.exists(parts[i]['state_dir']), 'Expected for only to be a state file for build1')
def test_stage_defaults(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.assertTrue(os.path.exists(parts[0]['state_file']), 'Expected a state file for the build0 part') with open(parts[0]['state_file']) as sf: state = sf.readlines() self.assertEqual(len(state), 1, 'Expected only one line in the state ' 'file for the build0 part') self.assertEqual(state[0], 'stage', "Expected the state file for " "build0 to be 'stage'")
def test_stage_ran_twice_is_a_noop(self): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertEqual( 'Pulling stage0 \n' 'Building stage0 \n' 'Staging stage0 \n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.assertTrue(os.path.exists(parts[0]['state_file']), 'Expected a state file for the build0 part') with open(parts[0]['state_file']) as sf: state = sf.readlines() self.assertEqual(len(state), 1, 'Expected only one line in the state ' 'file for the build0 part') self.assertEqual(state[0], 'stage', "Expected the state file for " "build0 to be 'stage'") fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) stage.main() self.assertEqual( 'Skipping pull stage0 (already ran)\n' 'Skipping build stage0 (already ran)\n' 'Skipping stage stage0 (already ran)\n', fake_logger.output)
def test_stage_ran_twice_is_a_noop(self): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertEqual( 'Pulling stage0 \n' 'Building stage0 \n' 'Staging stage0 \n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.assertTrue(os.path.exists(parts[0]['state_file']), 'Expected a state file for the build0 part') with open(parts[0]['state_file']) as sf: state = sf.readlines() self.assertEqual( len(state), 1, 'Expected only one line in the state ' 'file for the build0 part') self.assertEqual(state[0], 'stage', "Expected the state file for " "build0 to be 'stage'") fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) stage.main() self.assertEqual( 'Skipping pull stage0 (already ran)\n' 'Skipping build stage0 (already ran)\n' 'Skipping stage stage0 (already ran)\n', fake_logger.output)
def test_stage_defaults(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) parts = self.make_snapcraft_yaml() stage.main() self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(os.path.exists(common.get_partsdir()), 'Expected a parts directory') self.assertTrue(os.path.exists(parts[0]['part_dir']), 'Expected a part directory for the build0 part') self.assertTrue(os.path.exists(parts[0]['state_file']), 'Expected a state file for the build0 part') with open(parts[0]['state_file']) as sf: state = sf.readlines() self.assertEqual( len(state), 1, 'Expected only one line in the state ' 'file for the build0 part') self.assertEqual(state[0], 'stage', "Expected the state file for " "build0 to be 'stage'")