def test_snap_defaults(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) self.make_snapcraft_yaml() snap.main() self.assertEqual( 'Pulling part1 \n' 'Building part1 \n' 'Staging part1 \n' 'Stripping part1 \n' 'Snapping snap-test_1.0_amd64.snap\n' 'Snapped snap-test_1.0_amd64.snap\n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.assertTrue(self.state_file, 'Expected a state file for the part1 part') with open(self.state_file) as sf: state = sf.readlines() self.assertEqual(len(state), 1, 'Expected only one line in the state ' 'file for the part1 part') self.assertEqual(state[0], 'strip', "Expected the state file for " "part1 to be 'strip'") mock_call.assert_called_once_with([ 'mksquashfs', common.get_snapdir(), 'snap-test_1.0_amd64.snap', '-noappend', '-comp', 'xz'])
def main(argv=None): """Upload snap package to the Ubuntu Store.""" argv = argv if argv else [] docopt(__doc__, argv=argv) # make sure the full lifecycle is executed yaml_config = snapcraft.yaml.load_config() snap_filename = format_snap_name(yaml_config.data) if not os.path.exists(snap_filename): logger.info( 'Snap {} not found. Running snap step to create it.'.format( snap_filename)) snap.main(argv=argv) config = load_config() upload(snap_filename, yaml_config.data['name'], config=config)
def test_snap_from_dir_with_no_arch(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) meta_dir = os.path.join('mysnap', 'meta') os.makedirs(meta_dir) with open(os.path.join(meta_dir, 'snap.yaml'), 'w') as f: f.write("""name: my_snap version: 99 """) snap.main(['mysnap']) self.assertEqual( 'Snapping my_snap_99_all.snap\n' 'Snapped my_snap_99_all.snap\n', fake_logger.output) mock_call.assert_called_once_with([ 'mksquashfs', os.path.abspath('mysnap'), 'my_snap_99_all.snap', '-noappend', '-comp', 'xz', '-no-xattrs', '-all-root'])
def test_snap_from_dir(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) meta_dir = os.path.join('mysnap', 'meta') os.makedirs(meta_dir) with open(os.path.join(meta_dir, 'package.yaml'), 'w') as f: f.write("""name: my_snap version: 99 architectures: [amd64, armhf] """) snap.main(['mysnap']) self.assertEqual( 'Snapping my_snap_99_multi.snap\n' 'Snapped my_snap_99_multi.snap\n', fake_logger.output) mock_call.assert_called_once_with([ 'mksquashfs', os.path.abspath('mysnap'), 'my_snap_99_multi.snap', '-noappend', '-comp', 'xz'])
def main(argv=None): """Upload snap package to the Ubuntu Store.""" argv = argv if argv else [] docopt(__doc__, argv=argv) # make sure the full lifecycle is executed yaml_config = snapcraft.yaml.load_config() snap_name = _format_snap_name(yaml_config.data) if not os.path.exists(snap_name): logger.info( 'Snap {} not found. Running snap step to create it.'.format( snap_name)) snap.main(argv=argv) logger.info('Uploading {}'.format(snap_name)) config = load_config() success = upload(snap_name, config=config) if success: logger.info('{} upload complete'.format(snap_name)) else: logger.info('{} upload failed'.format(snap_name))
def test_snap_defaults_with_parts_in_strip(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) self.make_snapcraft_yaml() os.makedirs(os.path.dirname(self.state_file)) with open(self.state_file, 'w') as f: f.write('strip') snap.main() self.assertEqual( 'Skipping pull part1 (already ran)\n' 'Skipping build part1 (already ran)\n' 'Skipping stage part1 (already ran)\n' 'Skipping strip part1 (already ran)\n' 'Snapping snap-test_1.0_amd64.snap\n' 'Snapped snap-test_1.0_amd64.snap\n', fake_logger.output) mock_call.assert_called_once_with([ 'mksquashfs', common.get_snapdir(), 'snap-test_1.0_amd64.snap', '-noappend', '-comp', 'xz'])
def test_snap_defaults_with_parts_in_strip(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) self.make_snapcraft_yaml() # Pretend this part has already been stripped os.makedirs(self.state_dir) open(os.path.join(self.state_dir, 'strip'), 'w').close() snap.main() self.assertEqual( 'Skipping pull part1 (already ran)\n' 'Skipping build part1 (already ran)\n' 'Skipping stage part1 (already ran)\n' 'Skipping strip part1 (already ran)\n' 'Snapping snap-test_1.0_amd64.snap\n' 'Snapped snap-test_1.0_amd64.snap\n', fake_logger.output) mock_call.assert_called_once_with([ 'mksquashfs', common.get_snapdir(), 'snap-test_1.0_amd64.snap', '-noappend', '-comp', 'xz', '-no-xattrs', '-all-root'])
def test_snap_type_os_does_not_use_all_root(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) self.make_snapcraft_yaml(snap_type='os') snap.main() self.assertEqual( 'Pulling part1 \n' 'Building part1 \n' 'Staging part1 \n' 'Stripping part1 \n' 'Snapping snap-test_1.0_amd64.snap\n' 'Snapped snap-test_1.0_amd64.snap\n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.verify_state('part1', self.state_dir, 'strip') mock_call.assert_called_once_with([ 'mksquashfs', common.get_snapdir(), 'snap-test_1.0_amd64.snap', '-noappend', '-comp', 'xz', '-no-xattrs'])
def test_snap_with_output(self, mock_call): fake_logger = fixtures.FakeLogger(level=logging.INFO) self.useFixture(fake_logger) self.make_snapcraft_yaml() snap.main(['--output', 'mysnap.snap']) self.assertEqual( 'Pulling part1 \n' 'Building part1 \n' 'Staging part1 \n' 'Stripping part1 \n' 'Snapping mysnap.snap\n' 'Snapped mysnap.snap\n', fake_logger.output) self.assertTrue(os.path.exists(common.get_stagedir()), 'Expected a stage directory') self.verify_state('part1', self.state_dir, 'strip') mock_call.assert_called_once_with([ 'mksquashfs', common.get_snapdir(), 'mysnap.snap', '-noappend', '-comp', 'xz', '-no-xattrs', '-all-root'])