source: tailor/vcpx/tests/darcs.py @ 550

Revision 550, 3.9 KB checked in by lele@…, 8 years ago (diff)

Removed doubled assertion

Line 
1# -*- mode: python; coding: utf-8 -*-
2# :Progetto: vcpx -- Darcs specific tests
3# :Creato:   sab 17 lug 2004 02:33:41 CEST
4# :Autore:   Lele Gaifax <lele@nautilus.homeip.net>
5# :Licenza:  GNU General Public License
6#
7
8from unittest import TestCase, TestSuite
9from datetime import datetime
10from StringIO import StringIO
11from vcpx.darcs import changesets_from_darcschanges
12from shwrap import ExternalCommand, PIPE
13
14class DarcsChangesParserTest(TestCase):
15    """Tests for the parser of darcs changes"""
16
17    SIMPLE_TEST = """\
18<changelog>
19<patch author='lele@nautilus.homeip.net' date='20040716123737' local_date='Fri Jul 16 14:37:37 CEST 2004' inverted='False' hash='20040716123737-97f81-9db0d923d2ba6f4c3808cb04a4ae4cf99fed185b.gz'>
20        <name>Fix the CVS parser to omit already seen changesets</name>
21        <comment>For some unknown reasons....</comment>
22
23    <summary>
24    <modify_file>vcpx/cvs.py<removed_lines num='4'/><added_lines num='11'/></modify_file>
25    <modify_file>vcpx/tests/cvs.py<removed_lines num='14'/><added_lines num='32'/></modify_file>
26    </summary>
27
28</patch>
29
30<patch author='lele@nautilus.homeip.net' date='20040601140559' local_date='Tue Jun  1 16:05:59 CEST 2004' inverted='False' hash='20040601140559-97f81-b669594864cb35290fbe4848e6645e73057a8caf.gz'>
31        <name>Svn log parser with test</name>
32
33    <summary>
34    <modify_file>cvsync/svn.py<removed_lines num='1'/><added_lines num='93'/></modify_file>
35    <modify_file>cvsync/tests/__init__.py<added_lines num='1'/></modify_file>
36    <add_file>cvsync/tests/svn.py</add_file>
37    <add_file>cvsync/tests/testrepo.dump</add_file>
38    </summary>
39
40</patch>
41
42</changelog>
43"""
44
45    def testBasicBehaviour(self):
46        """Verify basic darcs changes parser behaviour"""
47
48        log = StringIO(self.SIMPLE_TEST)
49
50        csets = changesets_from_darcschanges(log)
51
52        self.assertEqual(len(csets), 2)
53
54        cset = csets[0]
55        self.assertEqual(cset.revision,
56                         "Svn log parser with test")
57        self.assertEqual(cset.date, datetime(2004, 6, 1, 14, 5, 59))
58        self.assertEqual(len(cset.entries), 4)
59
60        entry = cset.entries[0]
61        self.assertEqual(entry.name, 'cvsync/svn.py')
62        self.assertEqual(entry.action_kind, entry.UPDATED)
63        entry = cset.entries[1]
64        self.assertEqual(entry.name, 'cvsync/tests/__init__.py')
65        self.assertEqual(entry.action_kind, entry.UPDATED)
66        entry = cset.entries[2]
67        self.assertEqual(entry.name, 'cvsync/tests/svn.py')
68        self.assertEqual(entry.action_kind, entry.ADDED)
69        entry = cset.entries[3]
70        self.assertEqual(entry.name, 'cvsync/tests/testrepo.dump')
71        self.assertEqual(entry.action_kind, entry.ADDED)
72
73        cset = csets[1]
74        self.assertEqual(cset.revision,
75                         "Fix the CVS parser to omit already seen changesets")
76        self.assertEqual(cset.author, "lele@nautilus.homeip.net")
77        self.assertEqual(cset.date, datetime(2004, 7, 16, 12, 37, 37))
78        self.assertEqual(cset.log,
79                         "Fix the CVS parser to omit already seen changesets\n"
80                         "For some unknown reasons....")
81        entry = cset.entries[0]
82        self.assertEqual(entry.name, 'vcpx/cvs.py')
83        self.assertEqual(entry.action_kind, entry.UPDATED)
84
85    def testOnTailorOwnRepo(self):
86        """Verify fetching unidiff of a darcs patch"""
87
88        from os import getcwd
89
90        patchname = 'more detailed diags on SAXException'
91        changes = ExternalCommand(command=["darcs", "changes", "--xml", "--summary",
92                                           "--patches", patchname])
93        csets = changesets_from_darcschanges(changes.execute(stdout=PIPE),
94                                             unidiff=True,
95                                             repodir=getcwd())
96        unidiff = csets[0].unidiff
97        head = unidiff.split('\n')[0]
98        self.assertEqual(head, 'Thu Jun  9 22:17:11 CEST 2005  zooko@zooko.com')
Note: See TracBrowser for help on using the repository browser.