Changeset 551 in tailor


Ignore:
Timestamp:
08/11/05 16:56:39 (8 years ago)
Author:
lele@…
Hash name:
20050811145639-7a6fb-294d06a08e3bf74eb78d427c923f7abd3358d163
Message:

Fixed the darcs changes parser to handle remove_directory

Location:
vcpx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • vcpx/darcs.py

    r543 r551  
    6363                self.current['comment'] = '' 
    6464                self.current['entries'] = [] 
    65             elif name in ['name', 'comment', 
    66                           'add_file', 'add_directory', 
    67                           'modify_file', 'remove_file']: 
     65            elif name in ['name', 'comment', 'add_file', 'add_directory', 
     66                          'modify_file', 'remove_file', 'remove_directory']: 
    6867                self.current_field = [] 
    6968            elif name == 'move': 
     
    10099                entry.old_name = self.old_name 
    101100                self.current['entries'].append(entry) 
    102             elif name in ['add_file', 'add_directory', 
    103                           'modify_file', 'remove_file']: 
     101            elif name in ['add_file', 'add_directory', 'modify_file', 
     102                          'remove_file', 'remove_directory']: 
    104103                entry = ChangesetEntry(''.join(self.current_field).strip()) 
    105104                entry.action_kind = { 'add_file': entry.ADDED, 
     
    107106                                      'modify_file': entry.UPDATED, 
    108107                                      'remove_file': entry.DELETED, 
    109                                       'rename_file': entry.RENAMED 
     108                                      'remove_directory': entry.DELETED 
    110109                                    }[name] 
    111110 
  • vcpx/tests/darcs.py

    r550 r551  
    9797        head = unidiff.split('\n')[0] 
    9898        self.assertEqual(head, 'Thu Jun  9 22:17:11 CEST 2005  zooko@zooko.com') 
     99 
     100    ALL_ACTIONS_TEST = """\ 
     101<changelog> 
     102<patch author='' date='20050811140203' local_date='Thu Aug 11 16:02:03 CEST 2005' inverted='False' hash='20050811140203-da39a-0a36c886b2479b20ab9188781fe2e51f9a50a175.gz'> 
     103        <name>first</name> 
     104    <summary> 
     105    <add_file> 
     106    a.txt 
     107    </add_file> 
     108    <add_directory> 
     109    dir 
     110    </add_directory> 
     111    </summary> 
     112</patch> 
     113<patch author='' date='20050811140254' local_date='Thu Aug 11 16:02:54 CEST 2005' inverted='False' hash='20050811140254-da39a-b2ad279f1d7edae8e07b7b1ea8f3e63dbb242bf0.gz'> 
     114        <name>removed</name> 
     115    <summary> 
     116    <remove_directory> 
     117    dir 
     118    </remove_directory> 
     119    </summary> 
     120</patch> 
     121<patch author='' date='20050811140314' local_date='Thu Aug 11 16:03:14 CEST 2005' inverted='False' hash='20050811140314-da39a-de701bff466827b91e51658e411c768f43abc1b0.gz'> 
     122        <name>moved</name> 
     123    <summary> 
     124    <move from="bdir" to="dir"/> 
     125    <add_directory> 
     126    bdir 
     127    </add_directory> 
     128    </summary> 
     129</patch> 
     130<patch author='lele@metapensiero.it' date='20050811143245' local_date='Thu Aug 11 16:32:45 CEST 2005' inverted='False' hash='20050811143245-7a6fb-663bb3085e9b7996f554e4bd9d2f0b13208d65e0.gz'> 
     131        <name>modified</name> 
     132    <summary> 
     133    <modify_file> 
     134    a.txt<added_lines num='3'/> 
     135    </modify_file> 
     136    </summary> 
     137</patch> 
     138</changelog> 
     139""" 
     140 
     141    def testAllActions(self): 
     142        """Verify darcs changes parser understand all actions""" 
     143 
     144        log = StringIO(self.ALL_ACTIONS_TEST) 
     145 
     146        csets = changesets_from_darcschanges(log) 
     147 
     148        self.assertEqual(len(csets), 4) 
     149 
     150        cset = csets[0] 
     151        self.assertEqual(cset.revision, 'first') 
     152        self.assertEqual(len(cset.entries), 2) 
     153 
     154        entry = cset.entries[0] 
     155        self.assertEqual(entry.name, 'a.txt') 
     156        self.assertEqual(entry.action_kind, entry.ADDED) 
     157        entry = cset.entries[1] 
     158        self.assertEqual(entry.name, 'dir') 
     159        self.assertEqual(entry.action_kind, entry.ADDED) 
     160 
     161        cset = csets[1] 
     162        self.assertEqual(cset.revision, 'removed') 
     163        self.assertEqual(len(cset.entries), 1) 
     164 
     165        entry = cset.entries[0] 
     166        self.assertEqual(entry.name, 'dir') 
     167        self.assertEqual(entry.action_kind, entry.DELETED) 
     168 
     169        cset = csets[2] 
     170        self.assertEqual(cset.revision, 'moved') 
     171        self.assertEqual(len(cset.entries), 2) 
     172 
     173        entry = cset.entries[0] 
     174        self.assertEqual(entry.name, 'bdir') 
     175        self.assertEqual(entry.action_kind, entry.ADDED) 
     176 
     177        entry = cset.entries[1] 
     178        self.assertEqual(entry.name, 'dir') 
     179        self.assertEqual(entry.action_kind, entry.RENAMED) 
     180 
     181        cset = csets[3] 
     182        self.assertEqual(cset.revision, 'modified') 
     183        self.assertEqual(len(cset.entries), 1) 
     184 
     185        entry = cset.entries[0] 
     186        self.assertEqual(entry.name, 'a.txt') 
     187        self.assertEqual(entry.action_kind, entry.UPDATED) 
Note: See TracChangeset for help on using the changeset viewer.