def test_read_corrupt(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package = 'test', version = '1.1') OUT.color_off() contents.read() output = sys.stdout.getvalue().split('\n') self.assertEqual(output[12], '* Not enough entries.')
def test_read_corrupt(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package='test', version='1.1') OUT.color_off() contents.read() output = sys.stdout.getvalue().split('\n') self.assertEqual(output[12], '* Not enough entries.')
def test_add_pretend(self): loc = '/'.join((HERE, 'testfiles', 'contents', 'app')) contents = Contents(loc, package = 'test', version = '1.0', pretend = True) OUT.color_off() contents.add('file', 'config_owned', destination = loc, path = '/test1', real_path = loc + '/test1', relative = True) output = sys.stdout.getvalue().strip('\n') self.assertEqual(output, '* pretending to add: file 1 config_owned "test1"')
def test_can_rm(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package = 'test', version = '1.0') contents.read() contents.ignore += ['.svn'] self.assertEqual(contents.get_canremove('/'.join((HERE, 'testfiles', 'contents', 'inc'))), '!found inc') self.assertEqual(contents.get_canremove('/'.join((HERE, 'testfiles', 'contents', 'inc', 'prefs.php'))), '!found inc/prefs.php')
def test_remove_files(self): OUT.color_off() contents = Contents('/'.join((HERE, 'testfiles', 'contents', 'app2')), package = 'test', version = '1.0', pretend = True) contents.read() webrm = WebappRemove(contents, True, True) webrm.remove_files() output = sys.stdout.getvalue().split('\n') self.assertEqual(output[3], '* pretending to remove: ' + '/'.join((HERE, 'testfiles', 'contents', 'app2', 'test3')))
def test_remove_files(self): OUT.color_off() contents = Contents('/'.join((HERE, 'testfiles', 'contents', 'app2')), package='test', version='1.0', pretend=True) contents.read() webrm = WebappRemove(contents, True, True) webrm.remove_files() output = sys.stdout.getvalue().split('\n') self.assertEqual( output[3], '* pretending to remove: ' + '/'.join( (HERE, 'testfiles', 'contents', 'app2', 'test3')))
def test_add_pretend(self): loc = '/'.join((HERE, 'testfiles', 'contents', 'app')) contents = Contents(loc, package='test', version='1.0', pretend=True) OUT.color_off() contents.add('file', 'config_owned', destination=loc, path='/test1', real_path=loc + '/test1', relative=True) output = sys.stdout.getvalue().strip('\n') self.assertEqual( output, '* pretending to add: file 1 config_owned "test1"')
def test_write(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package = 'test', version = '1.0', pretend = True) OUT.color_off() contents.read() contents.write() output = sys.stdout.getvalue().split('\n') expected = '* Would have written content file ' + '/'.join((HERE, 'testfiles', 'contents', '.webapp-test-1.0!')) self.assertEqual(output[0], expected)
def test_read_clean(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package='test', version='1.0') contents.read() contents.db_print() output = sys.stdout.getvalue().split('\n') self.assertTrue('file 1 virtual signup.php ' in output[3]) self.assertEqual(contents.get_directories()[1], '/'.join( (HERE, 'testfiles', 'contents', 'inc')))
def test_read_clean(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package = 'test', version = '1.0') contents.read() contents.db_print() output = sys.stdout.getvalue().split('\n') self.assertTrue('file 1 virtual signup.php ' in output[3]) self.assertEqual(contents.get_directories()[1], '/'.join((HERE, 'testfiles', 'contents', 'inc')))
def test_write(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package='test', version='1.0', pretend=True) OUT.color_off() contents.read() contents.write() output = sys.stdout.getvalue().split('\n') expected = '* Would have written content file ' + '/'.join( (HERE, 'testfiles', 'contents', '.webapp-test-1.0!')) self.assertEqual(output[0], expected)
def test_can_rm(self): contents = Contents('/'.join((HERE, 'testfiles', 'contents')), package='test', version='1.0') contents.read() contents.ignore += ['.svn'] self.assertEqual( contents.get_canremove('/'.join( (HERE, 'testfiles', 'contents', 'inc'))), '!found inc') self.assertEqual( contents.get_canremove('/'.join( (HERE, 'testfiles', 'contents', 'inc', 'prefs.php'))), '!found inc/prefs.php')
def test_add(self): loc = '/'.join((HERE, 'testfiles', 'contents', 'app')) contents = Contents(loc, package='test', version='1.0') OUT.color_off() contents.add('file', 'config_owned', destination=loc, path='/test1', real_path=loc + '/test1', relative=True) # Now trigger an error by adding a file that doesn't exist! contents.add('file', 'config_owned', destination=loc, path='/test0', real_path=loc + '/test0', relative=True) output = sys.stdout.getvalue().strip('\n') self.assertTrue('WebappConfig/tests/testfiles/contents/app/test0 to '\ 'add it as installation content. This should not '\ 'happen!' in output) # Test adding hardlinks: contents.add('hardlink', 'config_owned', destination=loc, path='/test2', real_path=loc + '/test2', relative=True) self.assertTrue( 'file 1 config_owned "test2" ' in contents.entry(loc + '/test2')) # Test adding dirs: contents.add('dir', 'default_owned', destination=loc, path='/dir1', real_path=loc + '/dir1', relative=True) self.assertTrue( 'dir 1 default_owned "dir1" ' in contents.entry(loc + '/dir1')) # Test adding symlinks: contents.add('sym', 'virtual', destination=loc, path='/test3', real_path=loc + '/test3', relative=True) self.assertTrue('sym 1 virtual "test3" ' in contents.entry(loc + '/test3')) # Printing out the db after adding these entries: contents.db_print() output = sys.stdout.getvalue().split('\n') self.assertTrue('file 1 config_owned "test1" ' in output[1])
def test_mk(self): OUT.color_off() contents = Contents('/'.join((HERE, 'testfiles', 'installtest')), pretend=True) webrm = WebappRemove(contents, True, True) protect = Protection('', 'horde', '3.0.5', 'portage') source = WebappSource(root='/'.join( (HERE, 'testfiles', 'share-webapps')), category='', package='installtest', version='1.0') source.read() source.ignore = ['.svn'] webadd = WebappAdd( 'htdocs', '/'.join((HERE, 'testfiles', 'installtest')), { 'dir': { 'default-owned': ('root', 'root', '0644') }, 'file': { 'virtual': ('root', 'root', '0644'), 'server-owned': ('apache', 'apache', '0660'), 'config-owned': ('nobody', 'nobody', '0600') } }, { 'content': contents, 'removal': webrm, 'protect': protect, 'source': source }, { 'relative': 1, 'upgrade': False, 'pretend': True, 'verbose': False, 'linktype': 'soft' }) webadd.mkfile('test1') webadd.mkfile('test4') webadd.mkfile('test2') webadd.mkfile('test3') webadd.mkdir('dir1') webadd.mkdir('dir2') output = sys.stdout.getvalue().split('\n') self.assertEqual(output[0], '* pretending to add: sym 1 virtual ' + '"test1"') self.assertEqual( output[1], '* pretending to add: file 1 ' + 'server-owned "test4"') self.assertEqual(output[3], '* pretending to add: sym 1 virtual ' + '"test2"') self.assertEqual(output[4], '^o^ hiding test3') self.assertEqual( output[6], '* pretending to add: dir 1 ' + 'default-owned "dir1"') self.assertEqual( output[8], '* pretending to add: dir 1 ' + 'default-owned "dir2"') # Now testing all of them combined: webadd.mkdirs('') output = sys.stdout.getvalue().split('\n') self.assertEqual(output[20], '^o^ hiding /test3')
def test_add(self): loc = '/'.join((HERE, 'testfiles', 'contents', 'app')) contents = Contents(loc, package = 'test', version = '1.0') OUT.color_off() contents.add('file', 'config_owned', destination = loc, path = '/test1', real_path = loc + '/test1', relative = True) # Now trigger an error by adding a file that doesn't exist! contents.add('file', 'config_owned', destination = loc, path = '/test0', real_path = loc + '/test0', relative = True) output = sys.stdout.getvalue().strip('\n') self.assertTrue('WebappConfig/tests/testfiles/contents/app/test0 to '\ 'add it as installation content. This should not '\ 'happen!' in output) # Test adding hardlinks: contents.add('hardlink', 'config_owned', destination = loc, path = '/test2', real_path = loc + '/test2', relative = True) self.assertTrue('file 1 config_owned "test2" ' in contents.entry(loc + '/test2')) # Test adding dirs: contents.add('dir', 'default_owned', destination = loc, path = '/dir1', real_path = loc + '/dir1', relative = True) self.assertTrue('dir 1 default_owned "dir1" ' in contents.entry(loc + '/dir1')) # Test adding symlinks: contents.add('sym', 'virtual', destination = loc, path = '/test3', real_path = loc + '/test3', relative = True) self.assertTrue('sym 1 virtual "test3" ' in contents.entry(loc + '/test3')) # Printing out the db after adding these entries: contents.db_print() output = sys.stdout.getvalue().split('\n') self.assertTrue('file 1 config_owned "test1" ' in output[1])