コード例 #1
0
    def testFileActionDeleteTreeRight(self):
        relFilePath1 = os.path.join('adirectory', 'filename.txt')

        self.__createRightOnlyFile(relFilePath1)
        self.assertTrue(
            os.path.isdir(os.path.join(FIXTURE_DIR_RIGHT, 'adirectory')))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, relFilePath1)))

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])

        action = FileActions.FileActionDeleteTreeRight('adirectory', config)
        self.assertEqual(action.GetType(),
                         FileActions.ACTION_DELETE_TREE_RIGHT)

        action.PerformAction()

        # The file and directory should not exist on the left side.
        self.assertFalse(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, relFilePath1)))
        self.assertFalse(
            os.path.isdir(os.path.join(FIXTURE_DIR_LEFT, 'adirectory')))

        # The file and directory should not exist on the right side.
        self.assertFalse(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, relFilePath1)))
        self.assertFalse(
            os.path.isdir(os.path.join(FIXTURE_DIR_RIGHT, 'adirectory')))
コード例 #2
0
    def testFileActionCopyTreeRight(self):
        relFilePath1 = os.path.join('adirectory', 'filename.txt')
        relFilePath2 = os.path.join('adirectory', '.DS_Store')

        self.__createLeftOnlyFile(relFilePath1)
        self.__createLeftOnlyFile(relFilePath2)
        self.assertTrue(
            os.path.isdir(os.path.join(FIXTURE_DIR_LEFT, 'adirectory')))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, relFilePath1)))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, relFilePath2)))

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])

        action = FileActions.FileActionCopyTreeRight('adirectory', config)

        self.assertEqual(action.GetType(), FileActions.ACTION_COPY_TREE_RIGHT)

        action.PerformAction()

        # File 1 should have been copied, but not file 2.
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, relFilePath1)))
        self.assertFalse(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, relFilePath2)))

        # The original files should still be present.
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, relFilePath1)))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, relFilePath2)))
コード例 #3
0
    def testSameFiles(self):
        self.__createSameFile('samefile.txt')

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])
        comp = FolderComparer.FolderComparer(config)
        self.assertEqual(comp.GetSameFiles(), ['samefile.txt'])
        self.assertEqual(comp.GetDiffFiles(), [])
        self.assertEqual(comp.GetLeftOnlyDirs(), [])
        self.assertEqual(comp.GetLeftOnlyFiles(), [])
        self.assertEqual(comp.GetRightOnlyDirs(), [])
        self.assertEqual(comp.GetRightOnlyFiles(), [])
コード例 #4
0
    def testMacMetadataFilesAreIgnoredDiff(self):
        r'''Different files starting with "._" should not appear in the different files list.
        '''
        self.__createDiffFile('._difffile.txt')
        self.__createDiffFile(os.path.join('folder', '._anotherdifffile.txt'))

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])

        comp = FolderComparer.FolderComparer(config)
        self.assertEqual(comp.GetSameFiles(), [])
        self.assertEqual(comp.GetDiffFiles(), [])
        self.assertEqual(comp.GetLeftOnlyDirs(), [])
        self.assertEqual(comp.GetLeftOnlyFiles(), [])
        self.assertEqual(comp.GetRightOnlyDirs(), [])
        self.assertEqual(comp.GetRightOnlyFiles(), [])
コード例 #5
0
    def testFileActionCopyRight(self):
        self.__createLeftOnlyFile('filename.txt')

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])

        action = FileActions.FileActionCopyRight('filename.txt', config)

        self.assertEqual(action.GetType(), FileActions.ACTION_COPY_RIGHT)

        action.PerformAction()
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, 'filename.txt')))
        self.assertTrue(
            filecmp.cmp(os.path.join(FIXTURE_DIR_LEFT, 'filename.txt'),
                        os.path.join(FIXTURE_DIR_RIGHT, 'filename.txt')))
コード例 #6
0
    def testFileActionDeleteLeft(self):
        self.__createSameFile('filename.txt')
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, 'filename.txt')))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, 'filename.txt')))

        config = FolderComparerConfig.FolderComparerConfig(
            FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
            FolderComparerConfig.PREFER_NONE, [])

        action = FileActions.FileActionDeleteLeft('filename.txt', config)

        self.assertEqual(action.GetType(), FileActions.ACTION_DELETE_LEFT)

        action.PerformAction()
        self.assertFalse(
            os.path.isfile(os.path.join(FIXTURE_DIR_LEFT, 'filename.txt')))
        self.assertTrue(
            os.path.isfile(os.path.join(FIXTURE_DIR_RIGHT, 'filename.txt')))
コード例 #7
0
 def testIsCreatable(self):
     config = FolderComparerConfig.FolderComparerConfig(
         FIXTURE_DIR_LEFT, FIXTURE_DIR_RIGHT,
         FolderComparerConfig.PREFER_NONE, [])
     comp = FolderComparer.FolderComparer(config)
     self.assertTrue(comp)
コード例 #8
0
        re.compile(curRegex, re.IGNORECASE)
        for curRegex in userConfig['ignoreRegexes']
    ]

    # Translate the preferred side from the user config's string to the constant
    # value.
    userConfigPreferredSide = userConfig.get('preferSide', 'none')
    if userConfigPreferredSide == 'left':
        userConfigPreferredSide = FolderComparerConfig.PREFER_LEFT
    elif userConfigPreferredSide == 'right':
        userConfigPreferredSide = FolderComparerConfig.PREFER_RIGHT
    else:
        userConfigPreferredSide = FolderComparerConfig.PREFER_NONE

    config = FolderComparerConfig.FolderComparerConfig(
        userConfig['leftDir'], userConfig['rightDir'], userConfigPreferredSide,
        userConfig['ignoreRegexes'])

    comp = FolderComparer.FolderComparer(config)

    print '-' * OUTPUT_WIDTH
    print 'Left:', config.GetLeftFolder()
    print 'Right:', config.GetRightFolder()
    print '-' * OUTPUT_WIDTH

    # A list of tuples containing a description of the category and
    # the pairings for that category.  A list was used in order to
    # keep the order of the categories.
    categorizedPairings = [
        ('Modified Files', comp.GetDiffFilePairings()),
        ('Left-only Files', comp.GetLeftOnlyFilePairings()),
コード例 #9
0
    def testIsCreatedWithBuiltInIgnoreRegexes(self):
        config = FolderComparerConfig.FolderComparerConfig(
            'leftFolder', 'rightFolder', FolderComparerConfig.PREFER_NONE, [])

        regexes = config.GetIgnoreRegexes()
        self.assertTrue(len(regexes) > 0)
コード例 #10
0
 def testIsCreatable(self):
     config = FolderComparerConfig.FolderComparerConfig(
         'leftFolder', 'rightFolder', FolderComparerConfig.PREFER_NONE, [])
     self.assertIsNotNone(config)