def browser(self, browser, app):
        TestApp(app)
        browser.visit(browser.app_url + 'r/mercator/')
        assert wait(lambda: browser.find_link_by_text('filters'))

        browser.find_link_by_text('filters').first.click()
        assert wait(lambda: browser.find_by_css('.moving-column-sidebar').visible)

        return browser
    def test_resubmitting_proposal(self, browser_with_proposal):
        browser = browser_with_proposal

        login_god(browser)
        select_proposal(browser)

        assert wait(lambda: browser.find_link_by_text("edit"))

        browser.find_link_by_text("edit").first.click()
        assert wait(lambda: browser.find_by_name('accept-disclaimer'))

        browser.find_by_name('accept-disclaimer').first.check()
        browser.find_by_css('input[type="submit"]').first.click()
        assert success(browser)
def select_proposal(browser):
    """First click on proposal title in proposal list column and wait until
    proposal is properly loaded in content column. In order to verify proper
    proposal loading, check for the detail's commentary link to contain the
    correct proposal title."""
    proposal_list = browser.find_by_css(".moving-column-body").\
        first.find_by_tag("ol").first
    proposal_title = proposal_list.find_by_css(
        '.proposal-list-item-title').first

    assert wait(lambda: proposal_title.html)
    proposal_title.click()

    link = browser.find_by_css(".moving-column")[1].\
        find_by_css(".section-jump-cover h1 a")
    assert wait(lambda: proposal_title.html in link["href"])
 def test_filter_combinations(self, browser, locations, requested_fundings, proposals):
     for location in locations:
         location.find_by_css('a').first.click()
         for requested_funding in requested_fundings:
             requested_funding.find_by_css('a').first.click()
             assert wait(lambda:
                 is_filtered(browser, proposals, location=location,
                             requested_funding=requested_funding))
 def test_unfilter_requested_funding(self, browser, requested_fundings, proposals):
     requested_fundings[-1].find_by_css('a').first.click()
     assert wait(lambda: is_filtered(browser, proposals))
 def test_filter_requested_funding(self, browser, requested_fundings, proposals):
     for requested_funding in requested_fundings:
         requested_funding.find_by_css('a').first.click()
         assert wait(lambda:
             is_filtered(browser, proposals, requested_funding=requested_funding))
 def test_unfilter_location(self, browser, locations, proposals):
     locations[-1].find_by_css('a').first.click()
     assert wait(lambda: is_filtered(browser, proposals))
 def test_filter_location(self, browser, locations, proposals):
     for location in locations:
         location.find_by_css('a').first.click()
         assert wait(lambda:
             is_filtered(browser, proposals, location=location))
def success(browser):
    return wait(lambda: browser.url.endswith("/r/mercator/"))
    def test_submitting_creates_a_new_proposal(self, browser, app):
        browser.find_by_css('input[type="submit"]').first.click()
        assert wait(lambda: browser.url.endswith("/r/mercator/"), max_steps=20)

        browser.find_link_by_text(TITLE).first.click()
        assert wait(lambda: not browser.url.endswith("/r/mercator/"))