def assert_checklist_for_tags(self, tags, requestid=None):
        num_checks = 0
        checks = []

        # Gather reference checklists from the code
        for tag in tags:
            # While the tag name is 'search-backend', the checklist type
            # is truncated to 'search'.
            if tag == 'search-backend':
                tag = 'search'

            if tag not in checklist_reminders:
                continue

            plain_list = checklist_reminders[tag]
            num_checks += len(plain_list)
            checks += [(tag, check) for check in plain_list]

            cleanup_tag = '%s-cleanup' % tag
            cleanup_list = checklist_reminders[cleanup_tag]
            num_checks += len(cleanup_list)
            checks += [(cleanup_tag, check) for check in cleanup_list]

        reqid = self.make_request_with_tags(tags, requestid)
        checklists = self.get_checklists(reqid)

        T.assert_equal(num_checks, len(checklists))
        for check in checks:
            T.assert_in((reqid, check[0], check[1]), checklists)

        return reqid
    def test_process_queue_duplicate(self):
        with nested(
            mock.patch("%s.pushmanager.core.git.GitQueue.update_request_failure" % __name__),
            mock.patch("%s.pushmanager.core.git.GitQueue.update_request_successful" % __name__),
            # This will fail, stop logging errors
            mock.patch("%s.pushmanager.core.git.logging.error" % __name__),
            mock.patch(
                "%s.pushmanager.core.git.GitQueue._get_request_with_sha" % __name__,
                return_value={"id": 10, "state": "requested"},
            ),
            self.mocked_update_request(self.fake_request, self.fake_request),
        ):
            # GitQueue._get_request_with_sha returning a value means
            # we have a duplicated request. This should trigger a
            # failure
            T.assert_equal(pushmanager.core.git.GitQueue.update_request_failure.call_count, 1)
            T.assert_equal(pushmanager.core.git.GitQueue.update_request_successful.call_count, 0)

            # Match the error message for duplicate revision. error_msg
            # should be the last item of the first call object's *args list
            # (from mock library).
            T.assert_in(
                "another request with the same revision sha",
                pushmanager.core.git.GitQueue.update_request_failure.call_args_list[0][0][-1],
            )
Example #3
0
    def test_checklist_single_search_tag(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            test1_request = self.get_requests_by_user('testuser1')[0]
            self.insert_pushcontent(test1_request['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = [
                db.push_checklist.insert({
                    'request': test1_request['id'],
                    'type': 'search',
                    'target': 'prod'
                }),
                db.push_checklist.insert({
                    'request': test1_request['id'],
                    'type': 'search-cleanup',
                    'target': 'post-verify-prod'
                }),
            ]
            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_not_in("multiple requests", response.body)
            T.assert_in("for testuser1", response.body)
            T.assert_in("After Certifying - Do In Prod", response.body)
Example #4
0
    def test_checklist_duplicate(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            test1_request = self.get_requests_by_user('testuser1')[0]
            test2_request = self.get_requests_by_user('testuser2')[0]
            self.insert_pushcontent(test1_request['id'], fake_pushid)
            self.insert_pushcontent(test2_request['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = []
            for req in (test1_request, test2_request):
                checklist_queries.append(
                    db.push_checklist.insert({
                        'request': req['id'],
                        'type': 'search',
                        'target': 'prod'
                    }))
                checklist_queries.append(
                    db.push_checklist.insert({
                        'request': req['id'],
                        'type': 'search-cleanup',
                        'target': 'post-verify-prod'
                    }))
            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_not_equal(
                re.search("for testuser\d,testuser\d", response.body), None)
            T.assert_in("After Certifying - Do In Prod", response.body)
 def assert_request_buttons(self, tree, button_classes, button_text):
     found_buttons = []
     for button in tree.iter('button'):
         T.assert_in(button.attrib['class'], button_classes)
         T.assert_in(button.text, button_text)
         found_buttons.append(button)
     T.assert_equal(len(button_classes), len(found_buttons))
Example #6
0
 def assert_request_buttons(self, tree, button_classes, button_text):
     found_buttons = []
     for button in tree.iter('button'):
         T.assert_in(button.attrib['class'], button_classes)
         T.assert_in(button.text, button_text)
         found_buttons.append(button)
     T.assert_equal(len(button_classes), len(found_buttons))
    def test_branch_name_with_slash(self):
        fake_request = """{
            "id": 10,
            "user": "******",
            "repo": "testuser",
            "state": "requested",
            "branch": "testuser/testbranch",
            "revision": "00000",
            "description": "description for 'testuser/testbranch'",
            "title": "funny title",
            "reviewid": 102
        }"""

        with nested(
                mock.patch.object(SummaryForBranchServlet,
                                  "get_current_user",
                                  return_value="testuser"),
                mock.patch.object(SummaryForBranchServlet,
                                  "async_api_call",
                                  side_effect=self.mocked_api_call),
                mock.patch.object(self,
                                  "api_response",
                                  return_value="[%s]" % fake_request),
        ):
            self.fetch(
                "/summaryforbranch?userbranch=testuser/testuser/testbranch")
            response = self.wait()
            T.assert_equal(response.error, None)
            T.assert_in("'testuser/testbranch'", response.body)
            T.assert_in("102", response.body)
Example #8
0
    def test_process_queue_duplicate(self):
        with nested(
                mock.patch(
                    "%s.pushmanager.core.git.GitQueue.update_request_failure" %
                    __name__),
                mock.patch(
                    "%s.pushmanager.core.git.GitQueue.update_request_successful"
                    % __name__),
                # This will fail, stop logging errors
                mock.patch("%s.pushmanager.core.git.logging.error" % __name__),
                mock.patch(
                    "%s.pushmanager.core.git.GitQueue._get_request_with_sha" %
                    __name__,
                    return_value={
                        'id': 10,
                        'state': 'requested'
                    }),
                self.mocked_update_request(self.fake_request,
                                           self.fake_request)):
            # GitQueue._get_request_with_sha returning a value means
            # we have a duplicated request. This should trigger a
            # failure
            T.assert_equal(
                pushmanager.core.git.GitQueue.update_request_failure.
                call_count, 1)
            T.assert_equal(
                pushmanager.core.git.GitQueue.update_request_successful.
                call_count, 0)

            # Match the error message for duplicate revision. error_msg
            # should be the last item of the first call object's *args list
            # (from mock library).
            T.assert_in(
                "another request with the same revision sha", pushmanager.core.
                git.GitQueue.update_request_failure.call_args_list[0][0][-1])
    def test_checklist_duplicate(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            test1_request = self.get_requests_by_user('testuser1')[0]
            test2_request = self.get_requests_by_user('testuser2')[0]
            self.insert_pushcontent(test1_request['id'], fake_pushid)
            self.insert_pushcontent(test2_request['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = []
            for req in (test1_request, test2_request):
                checklist_queries.append(db.push_checklist.insert({
                    'request': req['id'],
                    'type': 'search',
                    'target': 'prod'
                }))
                checklist_queries.append(db.push_checklist.insert({
                    'request': req['id'],
                    'type': 'search-cleanup',
                    'target': 'post-verify-prod'
                }))
            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_not_equal(re.search("for testuser\d,testuser\d", response.body), None)
            T.assert_in("After Certifying - Do In Prod", response.body)
    def test_checklist_single_search_tag(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            test1_request = self.get_requests_by_user('testuser1')[0]
            self.insert_pushcontent(test1_request['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = [
                db.push_checklist.insert({
                    'request': test1_request['id'],
                    'type': 'search',
                    'target': 'prod'
                }),
                db.push_checklist.insert({
                    'request': test1_request['id'],
                    'type': 'search-cleanup',
                    'target': 'post-verify-prod'
                }),
            ]
            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_not_in("multiple requests", response.body)
            T.assert_in("for testuser1", response.body)
            T.assert_in("After Certifying - Do In Prod", response.body)
Example #11
0
 def test_create_request_bookmarklet(self):
     with self.page(CreateRequestBookmarkletHandler) as response:
         # We'll get a javascript as the body, just check some
         # variable names/strings that we know is there in the
         # script.
         T.assert_equal(response.error, None)
         T.assert_in("ticketNumberToURL", response.body)
         T.assert_in("codeReview", response.body)
Example #12
0
 def test_login_post(self):
     request = {"username": "******", "password": "******"}
     with mock.patch.object(logging, "exception"):
         response = self.fetch("/login",
                               method="POST",
                               body=urllib.urlencode(request))
         T.assert_in("Invalid username or password specified.",
                     response.body)
Example #13
0
 def test_escape(self):
     T.assert_equal(
         [k for k in self.d if self.ed[k] != self.escaped[k]],
         [],
         "EscapedDict values doesn't match with pre-computed valued"
     )
     T.assert_in("&", self.ed['amp'])
     T.assert_not_in(">", self.ed['gt'])
Example #14
0
    def verify_tag_rename(self, oldtag, newtag, success, db_results):
        self.check_db_results(success, db_results)

        #id, user, state, repo, branch, revision, *tags*, created, etc...
        tags = [result[6] for result in db_results.fetchall()]

        T.assert_not_in(oldtag, tags)
        T.assert_in(newtag, tags)
 def test_create_request_bookmarklet(self):
     with self.page(CreateRequestBookmarkletHandler) as response:
         # We'll get a javascript as the body, just check some
         # variable names/strings that we know is there in the
         # script.
         T.assert_equal(response.error, None)
         T.assert_in("ticketNumberToURL", response.body)
         T.assert_in("codeReview", response.body)
 def test_pushitems(self):
     with contextlib.nested(
         mock.patch.object(PushItemsServlet, "get_current_user", return_value=self.fake_request_data["user"]),
         mock.patch.object(PushItemsServlet, "async_api_call", side_effect=self.mocked_api_call),
         mock.patch.object(self, "api_response", return_value=self.fake_requests_response)
     ):
         self.fetch("/pushitems?push=%d" % self.fake_request_data["id"])
         response = self.wait()
         T.assert_in(self.fake_request_data["title"], response.body)
Example #17
0
    def verify_type_rename(self, oldtype, newtype, success, db_results):
        self.check_db_results(success, db_results)

        # id, push, *type*, status, target
        types = [result[2] for result in db_results.fetchall()]

        T.assert_not_in(oldtype, types)
        T.assert_not_in('%s-cleanup' % oldtype, types)
        T.assert_in('%s' % newtype, types)
        T.assert_in('%s-cleanup' % newtype, types)
    def verify_type_rename(self, oldtype, newtype, success, db_results):
        self.check_db_results(success, db_results)

        # id, push, *type*, status, target
        types = [result[2] for result in db_results.fetchall()]

        T.assert_not_in(oldtype, types)
        T.assert_not_in('%s-cleanup' % oldtype, types)
        T.assert_in('%s' % newtype, types)
        T.assert_in('%s-cleanup' % newtype, types)
    def test_xmppqueue_on_db_complete(self, xmppq, _):
        self.call_on_db_complete()

        no_watcher_call_args = xmppq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('for testuser', no_watcher_call_args[1])

        watched_call_args = xmppq.call_args_list[1][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'], watched_call_args[0])
        T.assert_in('for testuser (testuser1,testuser2)', watched_call_args[1])
    def test_xmppqueue_on_db_complete(self, xmppq, _):
        self.call_on_db_complete()

        no_watcher_call_args = xmppq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('for testuser', no_watcher_call_args[1])

        watched_call_args = xmppq.call_args_list[1][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'],
                       watched_call_args[0])
        T.assert_in('for testuser (testuser1,testuser2)', watched_call_args[1])
Example #21
0
    def test_dialogs_divs(self):
        tree = self.render_etree(self.push_dialogs_page,
                                 push_info=self.basic_push,
                                 **self.basic_kwargs)

        found_divs = []
        for div in tree.iter('div'):
            T.assert_in(div.attrib['id'], self.dialog_ids)
            found_divs.append(div)

        T.assert_equal(len(found_divs), len(self.dialog_ids))
    def test_dialogs_divs(self):
        tree = self.render_etree(
            self.push_dialogs_page,
            push_info=self.basic_push,
            **self.basic_kwargs)

        found_divs = []
        for div in tree.iter('div'):
            T.assert_in(div.attrib['id'], self.dialog_ids)
            found_divs.append(div)

        T.assert_equal(len(found_divs),len(self.dialog_ids))
Example #23
0
    def test_include_push_status_when_accepting(self):
        tree = self.render_etree(self.push_page,
                                 push_info=self.basic_push,
                                 **self.basic_kwargs)

        found_h3 = []
        for h3 in tree.iter('h3'):
            T.assert_equal('status-header', h3.attrib['class'])
            T.assert_in(h3.attrib['section'], self.accepting_push_sections)
            found_h3.append(h3)

        T.assert_equal(len(self.accepting_push_sections), len(found_h3))
Example #24
0
    def test_push_buttons_random_user(self):
        with self.no_ui_modules():
            tree = self.render_etree(self.push_button_bar_page,
                                     push_info=self.basic_push,
                                     **self.basic_kwargs)

        found_buttons = []
        for button in tree.iter('button'):
            T.assert_in(button.attrib['id'], self.push_button_ids_base)
            found_buttons.append(button)

        T.assert_equal(len(found_buttons), len(self.push_button_ids_base))
    def test_include_push_status_when_accepting(self):
        tree = self.render_etree(
            self.push_page,
            push_info=self.basic_push,
            **self.basic_kwargs)

        found_h3 = []
        for h3 in tree.iter('h3'):
            T.assert_equal('status-header', h3.attrib['class'])
            T.assert_in(h3.attrib['section'], self.accepting_push_sections)
            found_h3.append(h3)

        T.assert_equal(len(self.accepting_push_sections), len(found_h3))
    def test_push_buttons_random_user(self):
        with self.no_ui_modules():
            tree = self.render_etree(
                self.push_button_bar_page,
                push_info=self.basic_push,
                **self.basic_kwargs)

        found_buttons = []
        for button in tree.iter('button'):
            T.assert_in(button.attrib['id'], self.push_button_ids_base)
            found_buttons.append(button)

        T.assert_equal(len(found_buttons), len(self.push_button_ids_base))
 def test_pushitems(self):
     with contextlib.nested(
             mock.patch.object(PushItemsServlet,
                               "get_current_user",
                               return_value=self.fake_request_data["user"]),
             mock.patch.object(PushItemsServlet,
                               "async_api_call",
                               side_effect=self.mocked_api_call),
             mock.patch.object(self,
                               "api_response",
                               return_value=self.fake_requests_response)):
         self.fetch("/pushitems?push=%d" % self.fake_request_data["id"])
         response = self.wait()
         T.assert_in(self.fake_request_data["title"], response.body)
    def assert_push_info_listitems(self, list_items, push_info_items):
        for li in list_items:
            T.assert_in(li[0].text, push_info_items.keys())
            if li[0].text == 'Buildbot Runs':
                T.assert_equal(li[1][0].text, 'url')
                T.assert_equal(li[1][0].attrib['href'], push_info_items['Buildbot Runs'])
            elif li[0].text == 'State':
                T.assert_equal(li[1][0].attrib['class'], 'tags')  # Inner ul
                T.assert_equal(li[1][0][0].attrib['class'], 'tag-%s' % push_info_items['State'])  # Inner li
                T.assert_equal(li[1][0][0].text, push_info_items['State'])
            elif li[0].text == 'Push Type':
                T.assert_equal(li[1][0].attrib['class'], 'tags')  # Inner ul
                T.assert_equal(li[1][0][0].attrib['class'], 'tag-%s' % push_info_items['Push Type'])  # Inner li
                T.assert_equal(li[1][0][0].text, push_info_items['Push Type'])
            else:
                T.assert_equal(li[1].text, push_info_items[li[0].text])

        T.assert_equal(len(list_items), len(push_info_items))
Example #29
0
    def test_push_buttons_pushmaster(self):
        kwargs = dict(self.basic_kwargs)
        kwargs['current_user'] = self.basic_push['user']

        with self.no_ui_modules():
            tree = self.render_etree(self.push_button_bar_page,
                                     push_info=self.basic_push,
                                     **kwargs)

        found_buttons = []
        for button in tree.iter('button'):
            T.assert_in(
                button.attrib['id'],
                self.push_button_ids_base + self.push_button_ids_pushmaster)
            found_buttons.append(button)

        T.assert_equal(
            len(found_buttons),
            len(self.push_button_ids_base + self.push_button_ids_pushmaster))
    def test_push_buttons_pushmaster(self):
        kwargs = dict(self.basic_kwargs)
        kwargs['current_user'] = self.basic_push['user']

        with self.no_ui_modules():
            tree = self.render_etree(
                self.push_button_bar_page,
                push_info=self.basic_push,
                **kwargs)

        found_buttons = []
        for button in tree.iter('button'):
            T.assert_in(
                    button.attrib['id'],
                    self.push_button_ids_base + self.push_button_ids_pushmaster)
            found_buttons.append(button)

        T.assert_equal(
                len(found_buttons),
                len(self.push_button_ids_base + self.push_button_ids_pushmaster))
Example #31
0
    def assert_push_info_listitems(self, list_items, push_info_items):
        for li in list_items:
            T.assert_in(li[0].text, push_info_items.keys())
            if li[0].text == 'Buildbot Runs':
                T.assert_equal(li[1][0].text, 'url')
                T.assert_equal(li[1][0].attrib['href'],
                               push_info_items['Buildbot Runs'])
            elif li[0].text == 'State':
                T.assert_equal(li[1][0].attrib['class'], 'tags')  # Inner ul
                T.assert_equal(li[1][0][0].attrib['class'],
                               'tag-%s' % push_info_items['State'])  # Inner li
                T.assert_equal(li[1][0][0].text, push_info_items['State'])
            elif li[0].text == 'Push Type':
                T.assert_equal(li[1][0].attrib['class'], 'tags')  # Inner ul
                T.assert_equal(li[1][0][0].attrib['class'], 'tag-%s' %
                               push_info_items['Push Type'])  # Inner li
                T.assert_equal(li[1][0][0].text, push_info_items['Push Type'])
            else:
                T.assert_equal(li[1].text, push_info_items[li[0].text])

        T.assert_equal(len(list_items), len(push_info_items))
    def test_hoods_checklists(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            req = self.get_requests_by_user('testuser1')[0]
            self.insert_pushcontent(req['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = []
            checklist_items = (
                {'request': req['id'], 'type': 'hoods', 'target': 'stage'},
                {'request': req['id'], 'type': 'hoods', 'target': 'post-stage'},
                {'request': req['id'], 'type': 'hoods', 'target': 'prod'},
                {'request': req['id'], 'type': 'hoods-cleanup', 'target': 'post-verify-stage'},
            )
            for checklist_item in checklist_items:
                checklist_queries.append(db.push_checklist.insert(checklist_item))

            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_in("Notify testuser1 to deploy Geoservices to stage", response.body)
            T.assert_in("Notify testuser1 to deploy Geoservices to prod", response.body)
            T.assert_in("Ask Search to force index distribution on stage for testuser1", response.body)
    def test_summaryforbranch(self):
        fake_request = """{
            "id": 10,
            "user": "******",
            "repo": "testuser",
            "state": "requested",
            "branch": "testuser_fixes",
            "revision": "00000",
            "description": "long desc",
            "title": "funny title",
            "reviewid": 101
        }"""

        with nested(
            mock.patch.object(SummaryForBranchServlet, "get_current_user", return_value="testuser"),
            mock.patch.object(SummaryForBranchServlet, "async_api_call", side_effect=self.mocked_api_call),
            mock.patch.object(self, "api_response", return_value="[%s]" % fake_request),
        ):
            self.fetch("/summaryforbranch?userbranch=testuser/testuser_fixes")
            response = self.wait()
            T.assert_equal(response.error, None)
            T.assert_in("long desc", response.body)
Example #34
0
    def test_hoods_checklists(self):
        with fake_checklist_request():
            # insert fake data from FakeDataMixin
            fake_pushid = 2
            self.insert_pushes()
            self.insert_requests()
            req = self.get_requests_by_user('testuser1')[0]
            self.insert_pushcontent(req['id'], fake_pushid)

            # insert fake checklist data
            checklist_queries = []
            checklist_items = (
                {
                    'request': req['id'],
                    'type': 'hoods',
                    'target': 'stage'
                },
                {
                    'request': req['id'],
                    'type': 'hoods',
                    'target': 'post-stage'
                },
                {
                    'request': req['id'],
                    'type': 'hoods',
                    'target': 'prod'
                },
                {
                    'request': req['id'],
                    'type': 'hoods-cleanup',
                    'target': 'post-verify-stage'
                },
            )
            for checklist_item in checklist_items:
                checklist_queries.append(
                    db.push_checklist.insert(checklist_item))

            db.execute_transaction_cb(checklist_queries, on_db_return)

            uri = "/checklist?id=%d" % fake_pushid
            response = self.fetch(uri)
            T.assert_equal(response.error, None)
            T.assert_not_in("No checklist items for this push", response.body)
            T.assert_in("Notify testuser1 to deploy Geoservices to stage",
                        response.body)
            T.assert_in("Notify testuser1 to deploy Geoservices to prod",
                        response.body)
            T.assert_in(
                "Ask Search to force index distribution on stage for testuser1",
                response.body)
    def test_watched_mailqueue_on_db_complete(self, mailq):
        req = {
            'user': '******',
            'watchers': 'testuser1,testuser2',
            'repo': 'repo',
            'branch': 'branch',
            'title': 'title',
            'state': 'discarded',
        }
        self.call_on_db_complete(req)

        watched_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'], watched_call_args[0])
        T.assert_in('Request for testuser (testuser1,testuser2)', watched_call_args[1])
        T.assert_in('testuser (testuser1,testuser2) - title', watched_call_args[1])
        T.assert_in('[push] testuser (testuser1,testuser2) - title', watched_call_args[2])
    def test_no_watched_mailqueue_on_db_complete(self, mailq):
        req = {
            'user': '******',
            'watchers': None,
            'repo': 'repo',
            'branch': 'branch',
            'title': 'title',
            'state': 'discarded',
        }
        self.call_on_db_complete(req)

        no_watcher_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('Request for testuser', no_watcher_call_args[1])
        T.assert_in('testuser - title', no_watcher_call_args[1])
        T.assert_in('[push] testuser - title', no_watcher_call_args[2])
    def test_no_watched_mailqueue_on_db_complete(self, mailq):
        req = {
            'user': '******',
            'watchers': None,
            'repo': 'repo',
            'branch': 'branch',
            'title': 'title',
            'state': 'delayed',
        }
        self.call_on_db_complete(req)

        no_watcher_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('Request for testuser', no_watcher_call_args[1])
        T.assert_in('testuser - title', no_watcher_call_args[1])
        T.assert_in('[push] testuser - title', no_watcher_call_args[2])
    def test_watched_mailqueue_on_db_complete(self, mailq):
        req = {
            'user': '******',
            'watchers': 'testuser1,testuser2',
            'repo': 'repo',
            'branch': 'branch',
            'title': 'title',
            'state': 'delayed',
        }
        self.call_on_db_complete(req)

        watched_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'], watched_call_args[0])
        T.assert_in('Request for testuser (testuser1,testuser2)', watched_call_args[1])
        T.assert_in('testuser (testuser1,testuser2) - title', watched_call_args[1])
        T.assert_in('[push] testuser (testuser1,testuser2) - title', watched_call_args[2])
    def test_mailqueue_on_db_complete(self, mailq, _):
        self.call_on_db_complete()

        no_watcher_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('request for testuser', no_watcher_call_args[1])
        T.assert_in('testuser - title', no_watcher_call_args[1])
        T.assert_in('[push] testuser - title', no_watcher_call_args[2])

        watched_call_args = mailq.call_args_list[1][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'], watched_call_args[0])
        T.assert_in('request for testuser (testuser1,testuser2)', watched_call_args[1])
        T.assert_in('testuser (testuser1,testuser2) - title', watched_call_args[1])
        T.assert_in('[push] testuser (testuser1,testuser2) - title', watched_call_args[2])
Example #40
0
 def test_localizables_push_website_command_is_correct_in_push_js(self):
     with self.request_fake_pushdata():
         response = self.fetch("/static/js/push.js")
         T.assert_in("localizables_push_website.py", response.body)
         # Old (bash) version of the script shouldn't be there
         T.assert_not_in("localizables-push-website", response.body)
Example #41
0
 def test_check_sites_bookmarklet(self):
     with self.page(CheckSitesBookmarkletHandler) as response:
         # See comment above in test_create_request_bookmarklet
         T.assert_equal(response.error, None)
         T.assert_in("window.open", response.body)
Example #42
0
 def test_push_page_is_using_push_js(self):
     with self.request_fake_pushdata() as fakepush:
         pushdata, response = fakepush
         T.assert_in("js/push.js", response.body)
 def test_push_page_is_using_push_js(self):
     with self.request_fake_pushdata() as fakepush:
         pushdata, response = fakepush
         T.assert_in("js/push.js", response.body)
 def test_login_post(self):
     request = {"username": "******", "password": "******"}
     with mock.patch.object(logging, "exception"):
         response = self.fetch("/login", method="POST", body=urllib.urlencode(request))
         T.assert_in("Invalid username or password specified.", response.body)
    def test_mailqueue_on_db_complete(self, mailq, _):
        self.call_on_db_complete()

        no_watcher_call_args = mailq.call_args_list[0][0]
        T.assert_equal(['testuser'], no_watcher_call_args[0])
        T.assert_in('for testuser', no_watcher_call_args[1])
        T.assert_in('testuser - title', no_watcher_call_args[1])
        T.assert_in('[push] testuser - title', no_watcher_call_args[2])

        watched_call_args = mailq.call_args_list[1][0]
        T.assert_equal(['testuser', 'testuser1', 'testuser2'],
                       watched_call_args[0])
        T.assert_in('for testuser (testuser1,testuser2)', watched_call_args[1])
        T.assert_in('testuser (testuser1,testuser2) - title',
                    watched_call_args[1])
        T.assert_in('[push] testuser (testuser1,testuser2) - title',
                    watched_call_args[2])
    def test_mailqueue_on_db_complete(self, mailq):
        self.call_on_db_complete()

        no_watcher_call_args = mailq.call_args_list[0][0]
        T.assert_equal(["testuser"], no_watcher_call_args[0])
        T.assert_in("request for testuser", no_watcher_call_args[1])
        T.assert_in("testuser - title", no_watcher_call_args[1])
        T.assert_in("[push] testuser - title", no_watcher_call_args[2])

        watched_call_args = mailq.call_args_list[1][0]
        T.assert_equal(["testuser", "testuser1", "testuser2"], watched_call_args[0])
        T.assert_in("request for testuser (testuser1,testuser2)", watched_call_args[1])
        T.assert_in("testuser (testuser1,testuser2) - title", watched_call_args[1])
        T.assert_in("[push] testuser (testuser1,testuser2) - title", watched_call_args[2])
 def test_no_checklist(self):
     with fake_checklist_request():
         uri = "/checklist?id=1"
         response = self.fetch(uri)
         T.assert_equal(response.error, None)
         T.assert_in("No checklist items for this push", response.body)
 def test_localizables_push_website_command_is_correct_in_push_js(self):
     with self.request_fake_pushdata():
         response = self.fetch("/static/js/push.js")
         T.assert_in("localizables_push_website.py", response.body)
         # Old (bash) version of the script shouldn't be there
         T.assert_not_in("localizables-push-website", response.body)
Example #49
0
 def test_no_checklist(self):
     with fake_checklist_request():
         uri = "/checklist?id=1"
         response = self.fetch(uri)
         T.assert_equal(response.error, None)
         T.assert_in("No checklist items for this push", response.body)
 def test_check_sites_bookmarklet(self):
     with self.page(CheckSitesBookmarkletHandler) as response:
         # See comment above in test_create_request_bookmarklet
         T.assert_equal(response.error, None)
         T.assert_in("window.open", response.body)