コード例 #1
0
ファイル: functional.py プロジェクト: khoi-huynh/trac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11186 alias
     TracError should be raised when repository alias with name already
     exists
     """
     self._tester.go_to_admin()
     tc.follow("\\bRepositories\\b")
     tc.url(self._tester.url + '/admin/versioncontrol/repository')
     word = random_word()
     target = '%s_repos' % word
     name = '%s_alias' % word
     tc.formvalue('trac-addrepos', 'name', target)
     tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % target)
     tc.submit()
     # Jinja2 tc.find('The repository "%s" has been added.' % target)
     tc.find('The repository "%s" has been added.' % target)
     tc.formvalue('trac-addalias', 'name', name)
     tc.formvalue('trac-addalias', 'alias', target)
     tc.submit()
     # Jinja2 tc.find('The alias "%s" has been added.' % name)
     tc.find('The alias "%s" has been added.' % name)
     tc.formvalue('trac-addalias', 'name', name)
     tc.formvalue('trac-addalias', 'alias', target)
     tc.submit()
     tc.find('The alias "%s" already exists.' % name)
     tc.notfind(internal_error)
コード例 #2
0
ファイル: functional.py プロジェクト: minimalistduck/trac
    def runTest(self):
        """Test timeline in RSS format."""
        pagename = random_unique_camel()
        self._tester.create_wiki_page(pagename)
        page = WikiPage(self._testenv.get_trac_environment(), pagename)
        self._tester.go_to_timeline()
        tc.follow("RSS Feed")
        tc.find(
            r"""<\?xml version="1.0"\?>[\n]+
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Functional Tests</title>
    <link>http://127.0.0.1:\d+/timeline</link>
    <description>Trac Timeline</description>
    <language>en-US</language>
    <generator>Trac [^<]+</generator>
    <image>
      <title>Functional Tests</title>
      <url>http://127.0.0.1:\d+/chrome/site/your_project_logo.png</url>
      <link>http://127.0.0.1:\d+/timeline</link>
    </image>
    <item>
      <title>%(pagename)s created</title>

      <dc:creator>admin</dc:creator>
      <pubDate>%(http_date)s</pubDate>
      <link>http://127.0.0.1:\d+/wiki/%(pagename)s\?version=1</link>
      <guid isPermaLink="false">http://127.0.0.1:\d+/wiki/%(pagename)s\?version=1/\d+</guid>
      <description>[^<]+</description>
      <category>wiki</category>
    </item>
""" % {
                'pagename': pagename,
                'http_date': http_date(page.time)
            }, 'ms')
コード例 #3
0
ファイル: functional.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11355
        Save with no changes should redirect back to the repository listing.
        """
        # Add a repository
        self._tester.go_to_admin("Repositories")
        name = random_unique_camel()
        dir = os.path.join(tempfile.gettempdir(), name.lower())
        tc.formvalue("trac-addrepos", "name", name)
        tc.formvalue("trac-addrepos", "dir", dir)
        tc.submit("add_repos")
        tc.find('The repository "%s" has been added.' % name)

        # Save unmodified form and redirect back to listing page
        tc.follow(r"\b%s\b" % name)
        tc.url(self._tester.url + "/admin/versioncontrol/repository/" + name)
        tc.submit("save", formname="edit")
        tc.url(self._tester.url + "/admin/versioncontrol/repository")
        tc.find("Your changes have been saved.")

        # Warning is added when repository dir is not an absolute path
        tc.follow(r"\b%s\b" % name)
        tc.url(self._tester.url + "/admin/versioncontrol/repository/" + name)
        tc.formvalue("edit", "dir", os.path.basename(dir))
        tc.submit("save")
        tc.url(self._tester.url + "/admin/versioncontrol/repository/" + name)
        tc.find("The repository directory must be an absolute path.")
コード例 #4
0
    def runTest(self):
        """Admin rename milestone"""
        name1 = self._tester.create_milestone()
        name2 = random_unique_camel()
        tid = self._tester.create_ticket(info={'milestone': name1})
        milestone_url = self._tester.url + '/admin/ticket/milestones'

        self._tester.go_to_url(milestone_url)
        tc.follow(name1)
        tc.url(milestone_url + '/' + name1)
        tc.formvalue('edit', 'name', name2)
        tc.submit('save')

        tc.find(r"Your changes have been saved\.")
        tc.find(r"\b%s\b" % name2)
        tc.notfind(r"\b%s\b" % name1)
        self._tester.go_to_ticket(tid)
        tc.find('<a class="milestone" href="/milestone/%(name)s" '
                'title="No date set">%(name)s</a>' % {'name': name2})
        tc.find('<th class="trac-field-milestone">Milestone:</th>[ \t\n]+'
                '<td>[ \t\n]+<span class="trac-field-old">%s</span>'
                '[ \t\n]+→[ \t\n]+'
                '<span class="trac-field-new">%s</span>[ \t\n]+</td>' %
                (name1, name2))
        tc.find("Milestone renamed")
コード例 #5
0
    def runTest(self):
        """Admin modify priority details"""
        name1 = self._testenv.add_priority()
        self._tester.go_to_url('/admin/ticket/priority')

        # Modify the details of the priority
        tc.follow(name1)
        priority_url = self._tester.url + "/admin/ticket/priority"
        tc.url(priority_url + '/' + name1, regexp=False)
        name2 = random_unique_camel()
        tc.formvalue('edit', 'name', name2)
        tc.submit('save')
        tc.url(priority_url, regexp=False)

        # Cancel more modifications
        self._tester.go_to_url(priority_url)
        tc.follow(name2)
        name3 = random_unique_camel()
        tc.formvalue('edit', 'name', name3)
        tc.submit('cancel')
        tc.url(priority_url, regexp=False)

        # Verify that only the correct modifications show up
        tc.notfind(name1)
        tc.find(name2)
        tc.notfind(name3)
コード例 #6
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin modify priority details"""
        name = "DetailPriority"
        # Create a priority
        self._tester.create_priority(name + '1')

        # Modify the details of the priority
        priority_url = self._tester.url + "/admin/ticket/priority"
        tc.go(priority_url)
        tc.url(priority_url + '$')
        tc.follow(name + '1')
        tc.url(priority_url + '/' + name + '1')
        tc.formvalue('edit', 'name', name + '2')
        tc.submit('save')
        tc.url(priority_url + '$')

        # Cancel more modifications
        tc.go(priority_url)
        tc.follow(name)
        tc.formvalue('edit', 'name', name + '3')
        tc.submit('cancel')
        tc.url(priority_url + '$')

        # Verify that only the correct modifications show up
        tc.notfind(name + '1')
        tc.find(name + '2')
        tc.notfind(name + '3')
コード例 #7
0
    def runTest(self):
        """Admin modify priority details"""
        name = "DetailPriority"
        # Create a priority
        self._tester.create_priority(name + '1')

        # Modify the details of the priority
        priority_url = self._tester.url + "/admin/ticket/priority"
        tc.go(priority_url)
        tc.url(priority_url + '$')
        tc.follow(name + '1')
        tc.url(priority_url + '/' + name + '1')
        tc.formvalue('edit', 'name', name + '2')
        tc.submit('save')
        tc.url(priority_url + '$')

        # Cancel more modifications
        tc.go(priority_url)
        tc.follow(name)
        tc.formvalue('edit', 'name', name + '3')
        tc.submit('cancel')
        tc.url(priority_url + '$')

        # Verify that only the correct modifications show up
        tc.notfind(name + '1')
        tc.find(name + '2')
        tc.notfind(name + '3')
コード例 #8
0
ファイル: functional.py プロジェクト: timgraham/trac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11355
        Save with no changes should redirect back to the repository listing.
        """
        # Add a repository
        self._tester.go_to_admin("Repositories")
        name = random_unique_camel()
        dir = os.path.join(tempfile.gettempdir(), name.lower())
        tc.formvalue('trac-addrepos', 'name', name)
        tc.formvalue('trac-addrepos', 'dir', dir)
        tc.submit('add_repos')
        tc.find('The repository "%s" has been added.' % name)

        # Save unmodified form and redirect back to listing page
        tc.follow(r"\b%s\b" % name)
        tc.url(self._tester.url + '/admin/versioncontrol/repository/' + name)
        tc.submit('save', formname='edit')
        tc.url(self._tester.url + '/admin/versioncontrol/repository')
        tc.find("Your changes have been saved.")

        # Warning is added when repository dir is not an absolute path
        tc.follow(r"\b%s\b" % name)
        tc.url(self._tester.url + '/admin/versioncontrol/repository/' + name)
        tc.formvalue('edit', 'dir', os.path.basename(dir))
        tc.submit('save')
        tc.url(self._tester.url + '/admin/versioncontrol/repository/' + name)
        tc.find('The repository directory must be an absolute path.')
コード例 #9
0
 def runTest(self):
     self._tester.login_as(Usernames.team_member)
     page_url = self._tester.url + TEAM_URL
     tc.go(page_url)
     tc.url(page_url)
     tc.code(200)
     tc.follow('Team#1')
     tc.code(200)
     tc.find('Member#1')
コード例 #10
0
 def runTest(self):
     """Admin milestone completed"""
     name = self._testenv.add_milestone()
     milestone_url = self._tester.url + "/admin/ticket/milestones"
     self._tester.go_to_url(milestone_url)
     tc.follow(name)
     tc.url(milestone_url + '/' + name, regexp=False)
     tc.formvalue('edit', 'completed', True)
     tc.submit('save')
     tc.url(milestone_url, regexp=False)
コード例 #11
0
    def runTest(self):
        """Admin create milestone"""
        name = self._tester.create_milestone()

        # Make sure it's on the roadmap.
        tc.follow(r"\bRoadmap\b")
        tc.url(self._tester.url + '/roadmap', regexp=False)
        tc.find("Milestone:.*%s" % name)
        tc.follow(r"\b%s\b" % name)
        tc.url(self._tester.url + '/milestone/' + name, regexp=False)
        tc.find('No date set')
コード例 #12
0
 def runTest(self):
     """Admin component detail"""
     name = self._testenv.add_component()
     self._tester.go_to_url('/admin/ticket/components')
     tc.follow(name)
     desc = 'Some component description'
     tc.formvalue('edit', 'description', desc)
     tc.submit('cancel')
     tc.url(self._tester.url + '/admin/ticket/components', regexp=False)
     tc.follow(name)
     tc.notfind(desc)
コード例 #13
0
 def runTest(self):
     """Admin modify priority"""
     name = self._testenv.add_priority()
     self._tester.go_to_url('/admin/ticket/priority')
     tc.find(name)
     tc.follow(name)
     tc.formvalue('edit', 'name', name * 2)
     tc.submit('save')
     priority_url = self._tester.url + '/admin/ticket/priority'
     tc.url(priority_url, regexp=False)
     tc.find(name * 2)
コード例 #14
0
ファイル: functional.py プロジェクト: mugglecloud/trac
 def runTest(self):
     """Check empty repository"""
     browser_url = self._tester.url + '/browser'
     self._tester.go_to_url(browser_url)
     # This tests the current behavior; I'm not sure it's the best
     # behavior.
     tc.follow('Last Change')
     tc.find('Error: No such changeset')
     tc.back()
     tc.follow('Revision Log')
     tc.notfind('Error: Nonexistent path')
コード例 #15
0
ファイル: functional.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Check empty repository"""
     browser_url = self._tester.url + "/browser"
     tc.go(browser_url)
     tc.url(browser_url)
     # This tests the current behavior; I'm not sure it's the best
     # behavior.
     tc.follow("Last Change")
     tc.find("Error: No such changeset")
     tc.back()
     tc.follow("Revision Log")
     tc.notfind("Error: Nonexistent path")
コード例 #16
0
    def runTest(self):
        """Admin version details"""
        name = self._testenv.add_version()
        self._tester.go_to_url('/admin/ticket/versions')
        tc.follow(name)

        desc = 'Some other version description.'
        tc.formvalue('edit', 'description', desc)
        tc.submit('cancel')
        tc.url(self._tester.url + "/admin/ticket/versions", regexp=False)
        tc.follow(name)
        tc.notfind(desc)
コード例 #17
0
 def runTest(self):
     """Admin milestone completed"""
     name = "CompletedMilestone"
     self._tester.create_milestone(name)
     milestone_url = self._tester.url + "/admin/ticket/milestones"
     tc.go(milestone_url)
     tc.url(milestone_url)
     tc.follow(name)
     tc.url(milestone_url + '/' + name)
     tc.formvalue('edit', 'completed', True)
     tc.submit('save')
     tc.url(milestone_url + "$")
コード例 #18
0
ファイル: admin.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Admin milestone completed"""
     name = "CompletedMilestone"
     self._tester.create_milestone(name)
     milestone_url = self._tester.url + "/admin/ticket/milestones"
     tc.go(milestone_url)
     tc.url(milestone_url)
     tc.follow(name)
     tc.url(milestone_url + '/' + name)
     tc.formvalue('edit', 'completed', True)
     tc.submit('save')
     tc.url(milestone_url + "$")
コード例 #19
0
    def runTest(self):
        """Admin modify milestone details"""
        name = self._tester.create_milestone()

        milestone_url = self._tester.url + '/admin/ticket/milestones'

        def go_to_milestone_detail():
            tc.go(milestone_url)
            tc.url(milestone_url)
            tc.follow(name)
            tc.url(milestone_url + '/' + name)

        # Modify the details of the milestone
        go_to_milestone_detail()
        tc.formvalue('edit', 'due', True)
        tc.formvalue('edit', 'description', 'Some description.')
        tc.submit('save')
        tc.url(milestone_url)

        # Milestone is not closed
        self._tester.go_to_roadmap()
        tc.find(name)

        # Cancel more modifications and modification are not saved
        go_to_milestone_detail()
        tc.formvalue('edit', 'description', '~~Some other description.~~')
        tc.submit('cancel')
        tc.url(milestone_url)
        self._tester.go_to_roadmap()
        tc.find('Some description.')
        tc.follow(name)
        tc.find('Some description.')

        # Milestone is readonly when user doesn't have MILESTONE_MODIFY
        self._tester.logout()
        self._testenv.grant_perm('user', 'TICKET_ADMIN')
        self._tester.login('user')
        go_to_milestone_detail()
        try:
            tc.find(r'<input[^>]+id="name"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+id="due"[^>]+disabled="disabled"')
            tc.find(r'<input[^>]+id="duedate"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+id="completed"[^>]+disabled="disabled"')
            tc.find(r'<input[^>]+id="completeddate"[^>]+readonly="readonly"')
            tc.find(r'<textarea[^>]+id="description"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+name="save"[^>]+disabled="disabled"')
            tc.submit('cancel', 'edit')
            tc.url(milestone_url)
        finally:
            self._tester.logout()
            self._testenv.revoke_perm('user', 'TICKET_ADMIN')
            self._tester.login('admin')
コード例 #20
0
ファイル: admin.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Admin modify priority"""
     name = "ModifyPriority"
     self._tester.create_priority(name)
     priority_url = self._tester.url + '/admin/ticket/priority'
     tc.go(priority_url)
     tc.url(priority_url + '$')
     tc.find(name)
     tc.follow(name)
     tc.formvalue('edit', 'name', name * 2)
     tc.submit('save')
     tc.url(priority_url + '$')
     tc.find(name * 2)
コード例 #21
0
ファイル: admin.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Admin component detail"""
     name = "DetailComponent"
     self._tester.create_component(name)
     component_url = self._tester.url + "/admin/ticket/components"
     tc.go(component_url)
     tc.follow(name)
     desc = 'Some component description'
     tc.formvalue('edit', 'description', desc)
     tc.submit('cancel')
     tc.url(component_url + '$')
     tc.follow(name)
     tc.notfind(desc)
コード例 #22
0
 def runTest(self):
     """Admin component detail"""
     name = "DetailComponent"
     self._tester.create_component(name)
     component_url = self._tester.url + "/admin/ticket/components"
     tc.go(component_url)
     tc.follow(name)
     desc = 'Some component description'
     tc.formvalue('edit', 'description', desc)
     tc.submit('cancel')
     tc.url(component_url + '$')
     tc.follow(name)
     tc.notfind(desc)
コード例 #23
0
 def runTest(self):
     """Admin modify priority"""
     name = "ModifyPriority"
     self._tester.create_priority(name)
     priority_url = self._tester.url + '/admin/ticket/priority'
     tc.go(priority_url)
     tc.url(priority_url + '$')
     tc.find(name)
     tc.follow(name)
     tc.formvalue('edit', 'name', name * 2)
     tc.submit('save')
     tc.url(priority_url + '$')
     tc.find(name * 2)
コード例 #24
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin modify milestone details"""
        name = self._tester.create_milestone()

        milestone_url = self._tester.url + '/admin/ticket/milestones'
        def go_to_milestone_detail():
            tc.go(milestone_url)
            tc.url(milestone_url)
            tc.follow(name)
            tc.url(milestone_url + '/' + name)

        # Modify the details of the milestone
        go_to_milestone_detail()
        tc.formvalue('edit', 'due', True)
        tc.formvalue('edit', 'description', 'Some description.')
        tc.submit('save')
        tc.url(milestone_url)

        # Milestone is not closed
        self._tester.go_to_roadmap()
        tc.find(name)

        # Cancel more modifications and modification are not saved
        go_to_milestone_detail()
        tc.formvalue('edit', 'description', '~~Some other description.~~')
        tc.submit('cancel')
        tc.url(milestone_url)
        self._tester.go_to_roadmap()
        tc.find('Some description.')
        tc.follow(name)
        tc.find('Some description.')

        # Milestone is readonly when user doesn't have MILESTONE_MODIFY
        self._tester.logout()
        self._testenv.grant_perm('user', 'TICKET_ADMIN')
        self._tester.login('user')
        go_to_milestone_detail()
        try:
            tc.find(r'<input[^>]+id="name"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+id="due"[^>]+disabled="disabled"')
            tc.find(r'<input[^>]+id="duedate"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+id="completed"[^>]+disabled="disabled"')
            tc.find(r'<input[^>]+id="completeddate"[^>]+readonly="readonly"')
            tc.find(r'<textarea[^>]+id="description"[^>]+readonly="readonly"')
            tc.find(r'<input[^>]+name="save"[^>]+disabled="disabled"')
            tc.submit('cancel', 'edit')
            tc.url(milestone_url)
        finally:
            self._tester.logout()
            self._testenv.revoke_perm('user', 'TICKET_ADMIN')
            self._tester.login('admin')
コード例 #25
0
ファイル: admin.py プロジェクト: jacdevos/trac
    def runTest(self):
        """Admin version detail set time"""
        name = "DetailTimeVersion"
        self._tester.create_version(name)
        version_admin = self._tester.url + "/admin/ticket/versions"
        tc.go(version_admin)
        tc.url(version_admin)
        tc.follow(name)

        tc.formvalue('edit', 'time', '')
        tc.submit('save')
        tc.url(version_admin + '$')
        tc.find(name + '(<[^>]*>|\\s)*<[^>]* name="default" value="%s"' % name,
                's')
コード例 #26
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin version detail set time"""
        name = "DetailTimeVersion"
        self._tester.create_version(name)
        version_admin = self._tester.url + "/admin/ticket/versions"
        tc.go(version_admin)
        tc.url(version_admin)
        tc.follow(name)

        tc.formvalue('edit', 'time', '')
        tc.submit('save')
        tc.url(version_admin + '$')
        tc.find(name + '(<[^>]*>|\\s)*<[^>]* name="default" value="%s"'
                % name, 's')
コード例 #27
0
    def runTest(self):
        """Admin version details"""
        name = "DetailVersion"
        self._tester.create_version(name)
        version_admin = self._tester.url + "/admin/ticket/versions"
        tc.go(version_admin)
        tc.url(version_admin)
        tc.follow(name)

        desc = 'Some other version description.'
        tc.formvalue('edit', 'description', desc)
        tc.submit('cancel')
        tc.url(version_admin)
        tc.follow(name)
        tc.notfind(desc)
コード例 #28
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin version details"""
        name = "DetailVersion"
        self._tester.create_version(name)
        version_admin = self._tester.url + "/admin/ticket/versions"
        tc.go(version_admin)
        tc.url(version_admin)
        tc.follow(name)

        desc = 'Some other version description.'
        tc.formvalue('edit', 'description', desc)
        tc.submit('cancel')
        tc.url(version_admin)
        tc.follow(name)
        tc.notfind(desc)
コード例 #29
0
 def runTest(self):
     """Admin milestone completed in the future"""
     name = self._testenv.add_milestone()
     milestone_url = self._tester.url + "/admin/ticket/milestones"
     self._tester.go_to_url(milestone_url)
     tc.follow(name)
     tc.url(milestone_url + '/' + name, regexp=False)
     tc.formvalue('edit', 'completed', True)
     cdate = datetime_now(tz=utc) + datetime.timedelta(days=2)
     cdate_string = format_date(cdate, tzinfo=localtz, locale=locale_en)
     tc.formvalue('edit', 'completeddate', cdate_string)
     tc.submit('save')
     tc.find('Completion date may not be in the future')
     # And make sure it wasn't marked as completed.
     self._tester.go_to_roadmap()
     tc.find(name)
コード例 #30
0
    def runTest(self):
        """Admin modify milestone duedate on detail page"""
        name = self._testenv.add_milestone()

        # Modify the details of the milestone
        milestone_url = self._tester.url + "/admin/ticket/milestones"
        self._tester.go_to_url(milestone_url)
        tc.follow(name)
        tc.url(milestone_url + '/' + name, regexp=False)
        duedate = datetime_now(tz=utc)
        duedate_string = format_datetime(duedate, tzinfo=utc, locale=locale_en)
        tc.formvalue('edit', 'due', True)
        tc.formvalue('edit', 'duedate', duedate_string)
        tc.submit('save')
        tc.url(milestone_url, regexp=False)
        tc.find(name + '(<[^>]*>|\\s)*' + duedate_string, 's')
コード例 #31
0
ファイル: functional.py プロジェクト: timgraham/trac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11186
     TracError should be raised when repository with name already exists
     """
     self._tester.go_to_admin()
     tc.follow("\\bRepositories\\b")
     tc.url(self._tester.url + '/admin/versioncontrol/repository')
     name = random_word()
     tc.formvalue('trac-addrepos', 'name', name)
     tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % name)
     tc.submit()
     tc.find('The repository "%s" has been added.' % name)
     tc.formvalue('trac-addrepos', 'name', name)
     tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % name)
     tc.submit()
     tc.find('The repository "%s" already exists.' % name)
     tc.notfind(internal_error)
コード例 #32
0
    def runTest(self):
        """Render reStructured text using a wikiprocessor"""
        pagename = self._tester.create_wiki_page(content="""
{{{
#!rst
Hello
=====

.. trac:: wiki:WikiStart Some Link
}}}
                                     """)
        self._tester.go_to_wiki(pagename)
        tc.find("Some Link")
        tc.find(r'<h1[^>]*>Hello')
        tc.notfind("wiki:WikiStart")
        tc.follow("Some Link")
        tc.url(self._tester.url + "/wiki/WikiStart")
コード例 #33
0
ファイル: functional.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11186
     TracError should be raised when repository with name already exists
     """
     self._tester.go_to_admin()
     tc.follow("\\bRepositories\\b")
     tc.url(self._tester.url + "/admin/versioncontrol/repository")
     name = random_word()
     tc.formvalue("trac-addrepos", "name", name)
     tc.formvalue("trac-addrepos", "dir", "/var/svn/%s" % name)
     tc.submit()
     tc.find('The repository "%s" has been added.' % name)
     tc.formvalue("trac-addrepos", "name", name)
     tc.formvalue("trac-addrepos", "dir", "/var/svn/%s" % name)
     tc.submit()
     tc.find('The repository "%s" already exists.' % name)
     tc.notfind(internal_error)
コード例 #34
0
ファイル: backlog_admin_test.py プロジェクト: nagyist/agilo
 def _test_create_new_type(self, page_url, backlog_name):
     # Creates a new type and check if it appears directly in the
     # backlog list of types
     tc.go(self._tester.url + '/admin/ticket/type')
     tc.formvalue('addenum', 'name', 'testtype')
     tc.submit('add')
     # Now go to Agilo Types and make it a type
     tc.go(self._tester.url + '/admin/agilo/types')
     tc.follow('testtype')
     tc.formvalue('modcomp', 'alias', 'Test Type')
     tc.formvalue('modcomp', 'fields', 'drp_resources')
     tc.submit('save')
     # Go to the Backlog and verify the newly created type is there
     tc.go(self._tester.url + '/admin/agilo/backlogs/' + \
           backlog_name)
     tc.find('<option value="testtype">')
     tc.go(self._tester.url + '/admin/agilo/backlogs/')
コード例 #35
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        """Render reStructured text using a wikiprocessor"""
        pagename = self._tester.create_wiki_page(content="""
{{{
#!rst
Hello
=====

.. trac:: wiki:WikiStart Some Link
}}}
                                     """)
        self._tester.go_to_wiki(pagename)
        tc.find("Some Link")
        tc.find(r'<h1[^>]*>Hello')
        tc.notfind("wiki:WikiStart")
        tc.follow("Some Link")
        tc.url(self._tester.url + "/wiki/WikiStart")
コード例 #36
0
ファイル: functional.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11618
     fix for malformed `readonly="True"` attribute in repository admin.
     """
     env = self._testenv.get_trac_environment()
     env.config.set("repositories", "t11618.dir", self._testenv.repo_path_for_initenv())
     env.config.save()
     try:
         self._tester.go_to_admin()
         tc.follow(r"\bRepositories\b")
         tc.url(self._tester.url + "/admin/versioncontrol/repository")
         tc.follow(r"\bt11618\b")
         tc.url(self._tester.url + "/admin/versioncontrol/repository/t11618")
         tc.notfind(' readonly="True"')
         tc.find(' readonly="readonly"')
     finally:
         env.config.remove("repositories", "t11618.dir")
         env.config.save()
コード例 #37
0
ファイル: admin.py プロジェクト: pkdevbox/trac
 def runTest(self):
     """Admin milestone completed in the future"""
     name = "CompletedFutureMilestone"
     self._tester.create_milestone(name)
     milestone_url = self._tester.url + "/admin/ticket/milestones"
     tc.go(milestone_url)
     tc.url(milestone_url)
     tc.follow(name)
     tc.url(milestone_url + '/' + name)
     tc.formvalue('edit', 'completed', True)
     cdate = datetime.now(tz=utc) + timedelta(days=2)
     cdate_string = format_date(cdate, tzinfo=localtz, locale=locale_en)
     tc.formvalue('edit', 'completeddate', cdate_string)
     tc.submit('save')
     tc.find('Completion date may not be in the future')
     # And make sure it wasn't marked as completed.
     self._tester.go_to_roadmap()
     tc.find(name)
コード例 #38
0
ファイル: ticket_gui_test.py プロジェクト: djangsters/agilo
 def runTest(self):
     '''Checks that a modified description produces a description diff and
     we can look at that diff later as well as the ticket history page.'''
     self._tester.login_as(Usernames.admin)
     ticket_id = self._tester.create_new_agilo_task('Blub', 
                                                    'The boring description')
     self._tester.go_to_view_ticket_page(ticket_id)
     
     tc.formvalue('propertyform', 'field_description', 
                  'A new, exciting description')
     tc.submit('submit')
     
     self._tester.go_to_view_ticket_page(ticket_id)
     tc.follow('diff')
     tc.code(200)
     
     # There seems to be no easyer way to get to the ticket history page
     tc.follow('Ticket History')
     tc.code(200)
コード例 #39
0
 def runTest(self):
     pagename = self._tester.create_wiki_page()
     self._tester.edit_wiki_page(pagename)
     tc.follow(r"\bHistory\b")
     tc.url(self._tester.url + r'/wiki/%s\?action=history' % pagename)
     version_link = '<td class="version">[ \t\n]*' \
                    '<a href="/wiki/%(pagename)s\?version=%%(version)s" ' \
                    'title="View this version">%%(version)s[ \t\n]*</a>' \
                    % {'pagename': pagename}
     tc.find(version_link % {'version': 1})
     tc.find(version_link % {'version': 2})
     tc.formvalue('history', 'old_version', '1')
     tc.formvalue('history', 'version', '2')
     tc.submit()
     tc.url(r'%s/wiki/%s\?action=diff&version=2&old_version=1' %
            (self._tester.url, pagename))
     tc.find(r'<a href="/wiki/%s\?version=1">Version 1</a>' % pagename)
     tc.find(r'<a href="/wiki/%s\?version=2">Version 2</a>' % pagename)
     tc.find(r'<a href="/wiki/%(name)s">%(name)s</a>' % {'name': pagename})
コード例 #40
0
    def runTest(self):
        """Admin modify milestone duedate on detail page"""
        name = "DetailDueMilestone"
        # Create a milestone
        self._tester.create_milestone(name)

        # Modify the details of the milestone
        milestone_url = self._tester.url + "/admin/ticket/milestones"
        tc.go(milestone_url)
        tc.url(milestone_url)
        tc.follow(name)
        tc.url(milestone_url + '/' + name)
        duedate = datetime.now(tz=utc)
        duedate_string = format_datetime(duedate, tzinfo=utc, locale=locale_en)
        tc.formvalue('edit', 'due', True)
        tc.formvalue('edit', 'duedate', duedate_string)
        tc.submit('save')
        tc.url(milestone_url + '$')
        tc.find(name + '(<[^>]*>|\\s)*' + duedate_string, 's')
コード例 #41
0
ファイル: ticket_gui_test.py プロジェクト: nagyist/agilo
    def runTest(self):
        '''Checks that a modified description produces a description diff and
        we can look at that diff later as well as the ticket history page.'''
        self._tester.login_as(Usernames.admin)
        ticket_id = self._tester.create_new_agilo_task(
            'Blub', 'The boring description')
        self._tester.go_to_view_ticket_page(ticket_id)

        tc.formvalue('propertyform', 'field_description',
                     'A new, exciting description')
        tc.submit('submit')

        self._tester.go_to_view_ticket_page(ticket_id)
        tc.follow('diff')
        tc.code(200)

        # There seems to be no easyer way to get to the ticket history page
        tc.follow('Ticket History')
        tc.code(200)
コード例 #42
0
ファイル: functional.py プロジェクト: exocad/exotrac
 def runTest(self):
     pagename = self._tester.create_wiki_page()
     self._tester.edit_wiki_page(pagename)
     tc.follow(r"\bHistory\b")
     tc.url(self._tester.url + r'/wiki/%s\?action=history' % pagename)
     version_link = '<td class="version">[ \t\n]*' \
                    '<a href="/wiki/%(pagename)s\?version=%%(version)s" ' \
                    'title="View this version">%%(version)s[ \t\n]*</a>' \
                    % {'pagename': pagename}
     tc.find(version_link % {'version': 1})
     tc.find(version_link % {'version': 2})
     tc.formvalue('history', 'old_version', '1')
     tc.formvalue('history', 'version', '2')
     tc.submit()
     tc.url(r'%s/wiki/%s\?action=diff&version=2&old_version=1'
            % (self._tester.url, pagename))
     tc.find(r'<a href="/wiki/%s\?version=1">Version 1</a>' % pagename)
     tc.find(r'<a href="/wiki/%s\?version=2">Version 2</a>' % pagename)
     tc.find(r'<a href="/wiki/%(name)s">%(name)s</a>' % {'name': pagename})
コード例 #43
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        plugin_name = self.__class__.__name__
        env = self._testenv.get_trac_environment()
        env.config.set('components', plugin_name + '.*', 'enabled')
        env.config.save()
        create_file(os.path.join(env.path, 'plugins',
                                 plugin_name + '.py'), """\
from genshi.builder import tag
from trac.core import Component, implements
from trac.util.translation import tag_
from trac.wiki.api import IWikiPageManipulator


class WikiPageManipulator(Component):
    implements(IWikiPageManipulator)

    def prepare_wiki_page(self, req, page, fields):
        pass

    def validate_wiki_page(self, req, page):
        field = 'comment'
        yield None, tag_("The page contains invalid markup at"
                         " line %(number)s.", number=tag.strong('10'))
        yield field, tag_("The field %(field)s cannot be empty.",
                          field=tag.strong(field))
""")
        self._testenv.restart()

        try:
            self._tester.go_to_front()
            tc.follow("Wiki")
            tc.formvalue('modifypage', 'action', 'edit')
            tc.submit()
            tc.submit('save', 'edit')
            tc.url(self._tester.url + '/wiki/WikiStart$')
            tc.find("Invalid Wiki page: The page contains invalid markup at"
                    " line <strong>10</strong>.")
            tc.find("The Wiki page field 'comment' is invalid:"
                    " The field <strong>comment</strong> cannot be empty.")
        finally:
            env.config.set('components', plugin_name + '.*', 'disabled')
            env.config.save()
コード例 #44
0
    def runTest(self):
        plugin_name = self.__class__.__name__
        env = self._testenv.get_trac_environment()
        env.config.set('components', plugin_name + '.*', 'enabled')
        env.config.save()
        create_file(
            os.path.join(env.path, 'plugins', plugin_name + '.py'), """\
from genshi.builder import tag
from trac.core import Component, implements
from trac.util.translation import tag_
from trac.wiki.api import IWikiPageManipulator


class WikiPageManipulator(Component):
    implements(IWikiPageManipulator)

    def prepare_wiki_page(self, req, page, fields):
        pass

    def validate_wiki_page(self, req, page):
        field = 'comment'
        yield None, tag_("The page contains invalid markup at"
                         " line %(number)s.", number=tag.strong('10'))
        yield field, tag_("The field %(field)s cannot be empty.",
                          field=tag.strong(field))
""")
        self._testenv.restart()

        try:
            self._tester.go_to_front()
            tc.follow("Wiki")
            tc.formvalue('modifypage', 'action', 'edit')
            tc.submit()
            tc.submit('save', 'edit')
            tc.url(self._tester.url + '/wiki/WikiStart$')
            tc.find("Invalid Wiki page: The page contains invalid markup at"
                    " line <strong>10</strong>.")
            tc.find("The Wiki page field <strong>comment</strong> is invalid:"
                    " The field <strong>comment</strong> cannot be empty.")
        finally:
            env.config.set('components', plugin_name + '.*', 'disabled')
            env.config.save()
コード例 #45
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11584
        don't raise NoSuchChangeset for empty repository if no "rev" parameter
        """
        repo_path = self._testenv.svnadmin_create('repo-t11584')

        self._tester.go_to_admin()
        tc.follow("\\bRepositories\\b")
        tc.url(self._tester.url + '/admin/versioncontrol/repository')

        tc.formvalue('trac-addrepos', 'name', 't11584')
        tc.formvalue('trac-addrepos', 'dir', repo_path)
        tc.submit()
        tc.notfind(internal_error)
        self._testenv._tracadmin('repository', 'sync', 't11584')

        browser_url = self._tester.url + '/browser/t11584'
        tc.go(browser_url)
        tc.url(browser_url)
        tc.notfind('Error: No such changeset')
コード例 #46
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin modify milestone duedate on detail page"""
        name = "DetailDueMilestone"
        # Create a milestone
        self._tester.create_milestone(name)

        # Modify the details of the milestone
        milestone_url = self._tester.url + "/admin/ticket/milestones"
        tc.go(milestone_url)
        tc.url(milestone_url)
        tc.follow(name)
        tc.url(milestone_url + '/' + name)
        duedate = datetime.now(tz=utc)
        duedate_string = format_datetime(duedate, tzinfo=utc,
                                         locale=locale_en)
        tc.formvalue('edit', 'due', True)
        tc.formvalue('edit', 'duedate', duedate_string)
        tc.submit('save')
        tc.url(milestone_url + '$')
        tc.find(name + '(<[^>]*>|\\s)*'+ duedate_string, 's')
コード例 #47
0
ファイル: functional.py プロジェクト: timgraham/trac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11618
     fix for malformed `readonly="True"` attribute in repository admin.
     """
     env = self._testenv.get_trac_environment()
     env.config.set('repositories', 't11618.dir',
                    self._testenv.repo_path_for_initenv())
     env.config.save()
     try:
         self._tester.go_to_admin()
         tc.follow(r'\bRepositories\b')
         tc.url(self._tester.url + '/admin/versioncontrol/repository')
         tc.follow(r'\bt11618\b')
         tc.url(self._tester.url +
                '/admin/versioncontrol/repository/t11618')
         tc.notfind(' readonly="True"')
         tc.find(' readonly="readonly"')
     finally:
         env.config.remove('repositories', 't11618.dir')
         env.config.save()
コード例 #48
0
ファイル: functional.py プロジェクト: timgraham/trac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11584
        don't raise NoSuchChangeset for empty repository if no "rev" parameter
        """
        repo_path = self._testenv.svnadmin_create('repo-t11584')

        self._tester.go_to_admin()
        tc.follow("\\bRepositories\\b")
        tc.url(self._tester.url + '/admin/versioncontrol/repository')

        tc.formvalue('trac-addrepos', 'name', 't11584')
        tc.formvalue('trac-addrepos', 'dir', repo_path)
        tc.submit()
        tc.notfind(internal_error)
        self._testenv._tracadmin('repository', 'sync', 't11584')

        browser_url = self._tester.url + '/browser/t11584'
        tc.go(browser_url)
        tc.url(browser_url)
        tc.notfind('Error: No such changeset')
コード例 #49
0
ファイル: functional.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11584
        don't raise NoSuchChangeset for empty repository if no "rev" parameter
        """
        repo_path = self._testenv.svnadmin_create("repo-t11584")

        self._tester.go_to_admin()
        tc.follow("\\bRepositories\\b")
        tc.url(self._tester.url + "/admin/versioncontrol/repository")

        tc.formvalue("trac-addrepos", "name", "t11584")
        tc.formvalue("trac-addrepos", "dir", repo_path)
        tc.submit()
        tc.notfind(internal_error)
        self._testenv._tracadmin("repository", "sync", "t11584")

        browser_url = self._tester.url + "/browser/t11584"
        tc.go(browser_url)
        tc.url(browser_url)
        tc.notfind("Error: No such changeset")
コード例 #50
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """The table should be hidden and help text shown when there are no
        components defined (#11103)."""
        from trac.ticket import model
        env = self._testenv.get_trac_environment()
        components = list(model.Component.select(env))
        self._tester.go_to_admin()
        tc.follow(r"\bComponents\b")

        try:
            for comp in components:
                tc.formvalue('component_table', 'sel', comp.name)
            tc.submit('remove')
            tc.notfind('<table class="listing" id="complist">')
            tc.find("As long as you don't add any items to the list, this "
                    "field[ \t\n]*will remain completely hidden from the "
                    "user interface.")
        finally:
            for comp in components:
                self._tester.create_component(comp.name, comp.owner,
                                              comp.description)
コード例 #51
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11194
        TracError should be raised when repository with name already exists
        """
        self._tester.go_to_admin()
        tc.follow("\\bRepositories\\b")
        tc.url(self._tester.url + '/admin/versioncontrol/repository')

        word = random_word()
        names = ['%s_%d' % (word, n) for n in xrange(3)]
        tc.formvalue('trac-addrepos', 'name', names[0])
        tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % names[0])
        tc.submit()
        tc.notfind(internal_error)

        tc.formvalue('trac-addrepos', 'name', names[1])
        tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % names[1])
        tc.submit()
        tc.notfind(internal_error)

        tc.follow('\\b' + names[1] + '\\b')
        tc.url(self._tester.url + '/admin/versioncontrol/repository/' + names[1])
        tc.formvalue('trac-modrepos', 'name', names[2])
        tc.submit('save')
        tc.notfind(internal_error)
        tc.url(self._tester.url + '/admin/versioncontrol/repository')

        tc.follow('\\b' + names[2] + '\\b')
        tc.url(self._tester.url + '/admin/versioncontrol/repository/' + names[2])
        tc.formvalue('trac-modrepos', 'name', names[0])
        tc.submit('save')
        tc.find('The repository "%s" already exists.' % names[0])
        tc.notfind(internal_error)
コード例 #52
0
ファイル: functional.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Test for regression of http://trac.edgewall.org/ticket/11194
        TracError should be raised when repository with name already exists
        """
        self._tester.go_to_admin()
        tc.follow("\\bRepositories\\b")
        tc.url(self._tester.url + "/admin/versioncontrol/repository")

        word = random_word()
        names = ["%s_%d" % (word, n) for n in xrange(3)]
        tc.formvalue("trac-addrepos", "name", names[0])
        tc.formvalue("trac-addrepos", "dir", "/var/svn/%s" % names[0])
        tc.submit()
        tc.notfind(internal_error)

        tc.formvalue("trac-addrepos", "name", names[1])
        tc.formvalue("trac-addrepos", "dir", "/var/svn/%s" % names[1])
        tc.submit()
        tc.notfind(internal_error)

        tc.follow("\\b" + names[1] + "\\b")
        tc.url(self._tester.url + "/admin/versioncontrol/repository/" + names[1])
        tc.formvalue("edit", "name", names[2])
        tc.submit("save")
        tc.notfind(internal_error)
        tc.url(self._tester.url + "/admin/versioncontrol/repository")

        tc.follow("\\b" + names[2] + "\\b")
        tc.url(self._tester.url + "/admin/versioncontrol/repository/" + names[2])
        tc.formvalue("edit", "name", names[0])
        tc.submit("save")
        tc.find('The repository "%s" already exists.' % names[0])
        tc.notfind(internal_error)
コード例 #53
0
ファイル: admin.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Admin rename milestone"""
        name1 = self._tester.create_milestone()
        name2 = random_unique_camel()
        tid = self._tester.create_ticket(info={'milestone': name1})
        milestone_url = self._tester.url + '/admin/ticket/milestones'

        self._tester.go_to_url(milestone_url)
        tc.follow(name1)
        tc.url(milestone_url + '/' + name1)
        tc.formvalue('edit', 'name', name2)
        tc.submit('save')

        tc.find(r"Your changes have been saved\.")
        tc.find(r"\b%s\b" % name2)
        tc.notfind(r"\b%s\b" % name1)
        self._tester.go_to_ticket(tid)
        tc.find('<a class="milestone" href="/milestone/%(name)s" '
                'title="No date set">%(name)s</a>' % {'name': name2})
        tc.find('<strong class="trac-field-milestone">Milestone</strong>'
                '[ \t\n]+changed from <em>%s</em> to <em>%s</em>'
                % (name1, name2))
        tc.find("Milestone renamed")
コード例 #54
0
ファイル: functional.py プロジェクト: exocad/exotrac
 def runTest(self):
     """Test for regression of http://trac.edgewall.org/ticket/11186 alias
     TracError should be raised when repository alias with name already
     exists
     """
     self._tester.go_to_admin()
     tc.follow("\\bRepositories\\b")
     tc.url(self._tester.url + '/admin/versioncontrol/repository')
     word = random_word()
     target = '%s_repos' % word
     name = '%s_alias' % word
     tc.formvalue('trac-addrepos', 'name', target)
     tc.formvalue('trac-addrepos', 'dir', '/var/svn/%s' % target)
     tc.submit()
     tc.find('The repository "%s" has been added.' % target)
     tc.formvalue('trac-addalias', 'name', name)
     tc.formvalue('trac-addalias', 'alias', target)
     tc.submit()
     tc.find('The alias "%s" has been added.' % name)
     tc.formvalue('trac-addalias', 'name', name)
     tc.formvalue('trac-addalias', 'alias', target)
     tc.submit()
     tc.find('The alias "%s" already exists.' % name)
     tc.notfind(internal_error)
コード例 #55
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        """Add a file to the repository and verify it is in the browser"""
        # Add a file to Subversion
        tempfilename = random_word() + '_repo_browse.txt'
        fulltempfilename = 'component1/trunk/' + tempfilename
        revision = self._testenv.svn_add(fulltempfilename, random_page())

        # Verify that it appears in the browser view:
        browser_url = self._tester.url + '/browser'
        tc.go(browser_url)
        tc.url(browser_url)
        tc.find('component1')
        tc.follow('component1')
        tc.follow('trunk')
        tc.follow(tempfilename)
        self._tester.quickjump('[%s]' % revision)
        tc.find('Changeset %s' % revision)
        tc.find('admin')
        tc.find('Add %s' % fulltempfilename)
        tc.find('1 added')
        tc.follow('Timeline')
        tc.find('Add %s' % fulltempfilename)
コード例 #56
0
ファイル: functional.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Add a file to the repository and verify it is in the browser"""
        # Add a file to Subversion
        tempfilename = random_word() + "_repo_browse.txt"
        fulltempfilename = "component1/trunk/" + tempfilename
        revision = self._testenv.svn_add(fulltempfilename, random_page())

        # Verify that it appears in the browser view:
        browser_url = self._tester.url + "/browser"
        tc.go(browser_url)
        tc.url(browser_url)
        tc.find("component1")
        tc.follow("component1")
        tc.follow("trunk")
        tc.follow(tempfilename)
        self._tester.quickjump("[%s]" % revision)
        tc.find("Changeset %s" % revision)
        tc.find("admin")
        tc.find("Add %s" % fulltempfilename)
        tc.find("1 added")
        tc.follow("Timeline")
        tc.find("Add %s" % fulltempfilename)
コード例 #57
0
ファイル: functional.py プロジェクト: exocad/exotrac
    def runTest(self):
        """Create a directory tree in the repository"""
        # This should probably use the svn bindings...
        directories = []
        for component in ('component1', 'component2'):
            directories.append(component)
            for subdir in ('branches', 'tags', 'trunk'):
                directories.append('/'.join([component, subdir]))
        commit_message = 'Create component trees.'
        self._testenv.svn_mkdir(directories, commit_message)

        browser_url = self._tester.url + '/browser'
        tc.go(browser_url)
        tc.url(browser_url)
        tc.find('component1')
        tc.find('component2')
        tc.follow('Last Change')
        tc.url(self._tester.url + '/changeset/1/')
        tc.find(commit_message)
        for directory in directories:
            tc.find(directory)
        tc.back()
        tc.follow('Revision Log')
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)
        tc.follow('Timeline')
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)
        tc.formvalue('prefs', 'ticket', False)
        tc.formvalue('prefs', 'milestone', False)
        tc.formvalue('prefs', 'wiki', False)
        tc.submit()
        tc.find('by.*admin')
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)
コード例 #58
0
ファイル: functional.py プロジェクト: pkdevbox/trac
    def runTest(self):
        """Create a directory tree in the repository"""
        # This should probably use the svn bindings...
        directories = []
        for component in ("component1", "component2"):
            directories.append(component)
            for subdir in ("branches", "tags", "trunk"):
                directories.append("/".join([component, subdir]))
        commit_message = "Create component trees."
        self._testenv.svn_mkdir(directories, commit_message)

        browser_url = self._tester.url + "/browser"
        tc.go(browser_url)
        tc.url(browser_url)
        tc.find("component1")
        tc.find("component2")
        tc.follow("Last Change")
        tc.url(self._tester.url + "/changeset/1/")
        tc.find(commit_message)
        for directory in directories:
            tc.find(directory)
        tc.back()
        tc.follow("Revision Log")
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)
        tc.follow("Timeline")
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)
        tc.formvalue("prefs", "ticket", False)
        tc.formvalue("prefs", "milestone", False)
        tc.formvalue("prefs", "wiki", False)
        tc.submit()
        tc.find("by.*admin")
        # (Note that our commit log message is short enough to avoid
        # truncation.)
        tc.find(commit_message)