示例#1
0
 def _root(self):
   """Returns root element (including title, 3bbs)."""
   if self.is_info_page:
     return self._browser.element(class_name="widget", id="info")
   if apply_decline_proposal.CompareApplyDeclineModal().modal.exists:
     return self.root_element
   return self._browser.element(class_name="sticky-info-panel")
示例#2
0
 def apply_proposal(self, obj, proposal):
     """Apply an obj proposal."""
     self.open_obj_change_proposals_tab(obj).click_apply_btn(proposal)
     apply_decline_proposal.CompareApplyDeclineModal().click_apply_btn()
     proposal.status = object_states.APPLIED
     proposal.changes[0]["cur_value"] = proposal.changes[0][
         "proposed_value"]
示例#3
0
 def assert_objs_diff_corresponds_to_proposal(self, obj, proposal):
     """Check if objs difference corresponds to the proposal."""
     self.open_obj_change_proposals_tab(obj).click_review_apply_btn(
         proposal)
     comparison_window = apply_decline_proposal.CompareApplyDeclineModal()
     comparison_window.modal.wait_until(lambda e: e.exists)
     obj_name = objects.get_plural(obj.type)
     service_cls = factory.get_cls_webui_service(obj_name)(self._driver)
     current_obj = service_cls.build_obj_from_page(
         comparison_window.curr_version_obj_root_elem.wait_until(
             lambda e: e.exists))
     obj_after_proposal = service_cls.build_obj_from_page(
         comparison_window.proposal_version_obj_root_elem.wait_until(
             lambda e: e.exists))
     actual_proposal = entities_factory.ProposalsFactory().create()
     proposal_obj_dict = obj_after_proposal.__dict__
     current_obj_dict = current_obj.__dict__
     actual_proposal.changes = []
     for key in obj_after_proposal.__dict__.keys():
         if proposal_obj_dict[key] != current_obj_dict[key]:
             actual_proposal.changes.append({
                 "obj_attr_type":
                 key.title(),
                 "cur_value":
                 current_obj_dict[key],
                 "proposed_value":
                 proposal_obj_dict[key]
             })
     actual_proposal.author = comparison_window.get_proposal_version_author(
     )
     actual_proposal.datetime = (
         comparison_window.get_proposal_version_datetime())
     comparison_window.click_cancel_btn()
     assert actual_proposal == proposal
示例#4
0
 def is_info_page(self):
   """Returns whether the page is info page."""
   return (self.get_current_url_fragment() == self._url_fragment() and
           not apply_decline_proposal.CompareApplyDeclineModal().modal.exists)
示例#5
0
 def decline_proposal(self, obj, proposal):
     """Decline an obj proposal."""
     self.open_obj_change_proposals_tab(obj).click_review_apply_btn(
         proposal)
     apply_decline_proposal.CompareApplyDeclineModal().click_decline_btn()
     proposal.status = object_states.DECLINED