Lines Matching refs:self
20 def setUp(self):
22 self.addCleanup(tmpdir.cleanup)
23 self.tmpdir = pathlib.Path(tmpdir.name)
25 def test_create_archive(self):
27 source = self.tmpdir / 'source'
30 target = self.tmpdir / 'source.pyz'
32 self.assertTrue(target.is_file())
34 def test_create_archive_with_pathlib(self):
36 source = self.tmpdir / 'source'
39 target = self.tmpdir / 'source.pyz'
41 self.assertTrue(target.is_file())
43 def test_create_archive_with_subdirs(self):
45 source = self.tmpdir / 'source'
55 self.assertIn('foo/', z.namelist())
56 self.assertIn('bar/', z.namelist())
58 def test_create_archive_with_filter(self):
63 source = self.tmpdir / 'source'
68 target = self.tmpdir / 'source.pyz'
72 self.assertIn('__main__.py', z.namelist())
73 self.assertIn('test.py', z.namelist())
74 self.assertNotIn('test.pyc', z.namelist())
76 def test_create_archive_filter_exclude_dir(self):
82 source = self.tmpdir / 'source'
88 target = self.tmpdir / 'source.pyz'
92 self.assertEqual(len(z.namelist()), 2)
93 self.assertIn('__main__.py', z.namelist())
94 self.assertIn('test.py', z.namelist())
96 def test_create_archive_default_target(self):
98 source = self.tmpdir / 'source'
102 expected_target = self.tmpdir / 'source.pyz'
103 self.assertTrue(expected_target.is_file())
106 def test_create_archive_with_compression(self):
108 source = self.tmpdir / 'source'
112 target = self.tmpdir / 'source.pyz'
117 self.assertEqual(z.getinfo(name).compress_type,
120 def test_no_main(self):
122 source = self.tmpdir / 'source'
125 target = self.tmpdir / 'source.pyz'
126 with self.assertRaises(zipapp.ZipAppError):
129 def test_main_and_main_py(self):
131 source = self.tmpdir / 'source'
134 target = self.tmpdir / 'source.pyz'
135 with self.assertRaises(zipapp.ZipAppError):
138 def test_main_written(self):
140 source = self.tmpdir / 'source'
143 target = self.tmpdir / 'source.pyz'
146 self.assertIn('__main__.py', z.namelist())
147 self.assertIn(b'pkg.mod.fn()', z.read('__main__.py'))
149 def test_main_only_written_once(self):
153 source = self.tmpdir / 'source'
161 target = self.tmpdir / 'source.pyz'
164 self.assertEqual(1, z.namelist().count('__main__.py'))
166 def test_main_validation(self):
168 source = self.tmpdir / 'source'
170 target = self.tmpdir / 'source.pyz'
176 with self.subTest(main=main):
177 with self.assertRaises(zipapp.ZipAppError):
180 def test_default_no_shebang(self):
182 source = self.tmpdir / 'source'
185 target = self.tmpdir / 'source.pyz'
188 self.assertNotEqual(f.read(2), b'#!')
190 def test_custom_interpreter(self):
193 source = self.tmpdir / 'source'
196 target = self.tmpdir / 'source.pyz'
199 self.assertEqual(f.read(2), b'#!')
200 self.assertEqual(b'python\n', f.readline())
202 def test_pack_to_fileobj(self):
204 source = self.tmpdir / 'source'
209 self.assertTrue(target.getvalue().startswith(b'#!python\n'))
211 def test_read_shebang(self):
213 source = self.tmpdir / 'source'
216 target = self.tmpdir / 'source.pyz'
218 self.assertEqual(zipapp.get_interpreter(str(target)), 'python')
220 def test_read_missing_shebang(self):
222 source = self.tmpdir / 'source'
225 target = self.tmpdir / 'source.pyz'
227 self.assertEqual(zipapp.get_interpreter(str(target)), None)
229 def test_modify_shebang(self):
231 source = self.tmpdir / 'source'
234 target = self.tmpdir / 'source.pyz'
236 new_target = self.tmpdir / 'changed.pyz'
238 self.assertEqual(zipapp.get_interpreter(str(new_target)), 'python2.7')
240 def test_write_shebang_to_fileobj(self):
243 source = self.tmpdir / 'source'
246 target = self.tmpdir / 'source.pyz'
250 self.assertTrue(new_target.getvalue().startswith(b'#!python2.7\n'))
252 def test_read_from_pathobj(self):
255 source = self.tmpdir / 'source'
258 target1 = self.tmpdir / 'target1.pyz'
259 target2 = self.tmpdir / 'target2.pyz'
262 self.assertEqual(zipapp.get_interpreter(target2), 'python2.7')
264 def test_read_from_fileobj(self):
266 source = self.tmpdir / 'source'
269 target = self.tmpdir / 'source.pyz'
275 self.assertTrue(new_target.getvalue().startswith(b'#!python2.7\n'))
277 def test_remove_shebang(self):
279 source = self.tmpdir / 'source'
282 target = self.tmpdir / 'source.pyz'
284 new_target = self.tmpdir / 'changed.pyz'
286 self.assertEqual(zipapp.get_interpreter(str(new_target)), None)
288 def test_content_of_copied_archive(self):
290 source = self.tmpdir / 'source'
300 self.assertEqual(set(z.namelist()), {'__main__.py'})
306 def test_shebang_is_executable(self):
308 source = self.tmpdir / 'source'
311 target = self.tmpdir / 'source.pyz'
313 self.assertTrue(target.stat().st_mode & stat.S_IEXEC)
317 def test_no_shebang_is_not_executable(self):
319 source = self.tmpdir / 'source'
322 target = self.tmpdir / 'source.pyz'
324 self.assertFalse(target.stat().st_mode & stat.S_IEXEC)
331 def setUp(self):
333 self.addCleanup(tmpdir.cleanup)
334 self.tmpdir = pathlib.Path(tmpdir.name)
336 def make_archive(self):
338 source = self.tmpdir / 'source'
341 target = self.tmpdir / 'source.pyz'
345 def test_cmdline_create(self):
347 source = self.tmpdir / 'source'
353 self.assertTrue(target.is_file())
355 def test_cmdline_copy(self):
357 original = self.make_archive()
358 target = self.tmpdir / 'target.pyz'
361 self.assertTrue(target.is_file())
363 def test_cmdline_copy_inplace(self):
365 original = self.make_archive()
366 target = self.tmpdir / 'target.pyz'
368 with self.assertRaises(SystemExit) as cm:
371 self.assertTrue(cm.exception.code)
373 def test_cmdline_copy_change_main(self):
375 original = self.make_archive()
376 target = self.tmpdir / 'target.pyz'
378 with self.assertRaises(SystemExit) as cm:
381 self.assertTrue(cm.exception.code)
384 def test_info_command(self, mock_stdout):
386 target = self.make_archive()
388 with self.assertRaises(SystemExit) as cm:
391 self.assertEqual(cm.exception.code, 0)
392 self.assertEqual(mock_stdout.getvalue(), "Interpreter: <none>\n")
394 def test_info_error(self):
396 target = self.tmpdir / 'dummy.pyz'
398 with self.assertRaises(SystemExit) as cm:
401 self.assertTrue(cm.exception.code)