예제 #1
0
    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.')
예제 #2
0
    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.')
예제 #3
0
    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"')
예제 #4
0
    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')
예제 #5
0
    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')))
예제 #6
0
    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')))
예제 #7
0
    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"')
예제 #8
0
    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)
예제 #9
0
    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')))
예제 #10
0
    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')))
예제 #11
0
    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)
예제 #12
0
    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')
예제 #13
0
    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])
예제 #14
0
    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')
예제 #15
0
    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])