Пример #1
0
def test_property_mock_dynamic_set():
    m = MagicMock()
    p = PropertyMock(return_value=3)
    type(m).foo = p

    assert m.foo == 3
    p.assert_called_once()
Пример #2
0
    def test_get_scheduler(self):
        """Tests successful execution of the get_scheduler command."""
        mock_options = self.setup_mock_options()
        mock_proxy = create_autospec(spec=SchedulerProxy, instance=True)
        mock_scheduler_client = create_autospec(spec=SchedulerClient,
                                                instance=True)
        mock_raw_url = PropertyMock(return_value="url")
        mock_proxy.scheduler_client.return_value = mock_scheduler_client
        mock_scheduler_client.raw_url = mock_raw_url

        with contextlib.nested(
                patch('twitter.common.app.get_options',
                      return_value=mock_options),
                patch('apache.aurora.admin.admin.make_admin_client',
                      return_value=create_autospec(spec=AuroraClientAPI)),
                patch('apache.aurora.admin.admin.CLUSTERS',
                      new=self.TEST_CLUSTERS),
        ) as (_, mock_make_admin_client, _):

            api = mock_make_admin_client.return_value
            api.scheduler_proxy = PropertyMock(return_value=mock_proxy)

            get_scheduler([self.TEST_CLUSTER])

            mock_raw_url.assert_called_once()
Пример #3
0
    def test_generate_plan_persist_destroy(
            self, mock_graph_tags: PropertyMock) -> None:
        """Test generate plan persist destroy."""
        mock_graph_tags.return_value = {}
        context = self._get_context(
            extra_config_args={"persistent_graph_key": "test.json"})
        context._persistent_graph = Graph.from_steps(
            [Step.from_stack_name("removed", context)])
        deploy_action = deploy.Action(context=context)
        plan = cast(Plan,
                    deploy_action._Action__generate_plan())  # type: ignore

        self.assertIsInstance(plan, Plan)
        self.assertEqual(deploy.Action.DESCRIPTION, plan.description)
        mock_graph_tags.assert_called_once()
        # order is different between python2/3 so can't compare dicts
        result_graph_dict = plan.graph.to_dict()
        self.assertEqual(5, len(result_graph_dict))
        self.assertEqual(set(), result_graph_dict["other"])
        self.assertEqual(set(), result_graph_dict["removed"])
        self.assertEqual(set(), result_graph_dict["vpc"])
        self.assertEqual(set(["vpc"]), result_graph_dict["bastion"])
        self.assertEqual(set(["bastion", "vpc"]), result_graph_dict["db"])
        self.assertEqual(deploy_action._destroy_stack,
                         plan.graph.steps["removed"].fn)
        self.assertEqual(deploy_action._launch_stack,
                         plan.graph.steps["vpc"].fn)
        self.assertEqual(deploy_action._launch_stack,
                         plan.graph.steps["bastion"].fn)
        self.assertEqual(deploy_action._launch_stack,
                         plan.graph.steps["db"].fn)
        self.assertEqual(deploy_action._launch_stack,
                         plan.graph.steps["other"].fn)
Пример #4
0
 def test_store_checks_fullness(self):
     is_full_mock = PropertyMock()
     with patch.object(_MetricCache, 'is_full', is_full_mock):
         with patch('carbon.cache.events'):
             metric_cache = _MetricCache()
             metric_cache.store('foo', (123456, 1.0))
             is_full_mock.assert_called_once()
Пример #5
0
    def test_generate_plan_with_persist_no_lock_req(
            self, mock_stack_action: PropertyMock,
            mock_tags: PropertyMock) -> None:
        """Test generate plan with persist no lock req."""
        mock_stack_action.return_value = MagicMock()
        mock_tags.return_value = {}
        context = mock_context(namespace="test",
                               extra_config_args=self.config_persist,
                               region=self.region)
        persist_step = Step.from_stack_name("removed", context)
        context._persistent_graph = Graph.from_steps([persist_step])
        action = BaseAction(
            context=context,
            provider_builder=MockProviderBuilder(provider=self.provider,
                                                 region=self.region),
        )

        plan = action._generate_plan(include_persistent_graph=True,
                                     require_unlocked=False)

        self.assertIsInstance(plan, Plan)
        mock_tags.assert_called_once()
        # order is different between python2/3 so can't compare dicts
        result_graph_dict = plan.graph.to_dict()
        self.assertEqual(3, len(result_graph_dict))
        self.assertEqual(set(), result_graph_dict["stack1"])
        self.assertEqual(set(["stack1"]), result_graph_dict["stack2"])
        self.assertEqual(set(), result_graph_dict["removed"])
        self.assertEqual(BaseAction.DESCRIPTION, plan.description)
        self.assertFalse(plan.require_unlocked)
Пример #6
0
 def test_store_checks_fullness(self):
   is_full_mock = PropertyMock()
   with patch.object(_MetricCache, 'is_full', is_full_mock):
     with patch('carbon.cache.events'):
       metric_cache = _MetricCache()
       metric_cache.store('foo', (123456, 1.0))
       is_full_mock.assert_called_once()
Пример #7
0
 def test_postprocess_testjob_save_attachments(
     self,
     results_url_mock,
     get_from_artifactorial_mock,
     assign_test_log_mock,
     create_testrun_attachment_mock,
 ):
     results_url_mock.return_value = "http://foo.com"
     result_files = ResultFiles()
     result_files.test_results = ExtractedResult()
     result_files.test_results.contents = "abc"
     result_files.test_results.length = 3
     get_from_artifactorial_mock.return_value = result_files
     testjob_mock = MagicMock()
     id_mock = PropertyMock(return_value="999111")
     type(testjob_mock).pk = id_mock
     job_id_mock = PropertyMock(return_value="1234")
     type(testjob_mock).job_id = job_id_mock
     testjob_mock.backend = MagicMock()
     implementation_type_mock = PropertyMock(return_value="lava")
     type(testjob_mock.backend).implementation_type = implementation_type_mock
     definition_mock = PropertyMock(return_value=JOB_DEFINITION)
     type(testjob_mock).definition = definition_mock
     self.plugin.postprocess_testjob(testjob_mock)
     implementation_type_mock.assert_called_once()
     definition_mock.assert_called()
     results_url_mock.assert_called()
     testjob_mock.testrun.metadata.__setitem__.assert_called()
     testjob_mock.testrun.save.assert_called()
     assign_test_log_mock.assert_called()
     create_testrun_attachment_mock.assert_called()
Пример #8
0
    def test_throw(self):
        player = players.Thief()
        rat = players.Rat()
        dagger = MockHelper.get_mock_weapon()
        not_a_dagger = MockHelper.get_mock_item()

        #Must be carrying item
        #Item must be a throwable weapon
        #Should decrease number of items when thrown
        #If none left then no longer carrying

        #Not carrying
        player.is_carrying = Mock(return_value=False)
        self.assertFalse(player.throw(dagger, rat))
        player.is_carrying.assert_called_once()

        #Not a weapon
        #TODO: Allow food to be thrown?
        player.is_carrying = Mock(return_value=True)
        self.assertFalse(player.throw(not_a_dagger, rat))

        #Not throwable
        #Mock class methods
        mock_is_throwable = PropertyMock(return_value=True)
        type(dagger).is_throwable = mock_is_throwable

        self.assertTrue(player.throw(dagger, rat))
        mock_is_throwable.assert_called_once()
Пример #9
0
 def test_colorbar(self, quick_axis_options_view):
     quick_axis_options_view.return_value = self.view
     self.view.exec_ = MagicMock(return_value=True)
     colorbar_log = PropertyMock()
     type(self.model).colorbar_log = colorbar_log
     self.view.log_scale.isChecked = Mock()
     quick_axis_options('colorbar_range', self.model, True)
     self.view.log_scale.isChecked.assert_called_once()
     colorbar_log.assert_called_once()
Пример #10
0
 def test_download_results_expired_url(self, get_mock):
     requests_result_mock = Mock()
     status_code_mock = PropertyMock(return_value=404)
     type(requests_result_mock).status_code = status_code_mock
     content_mock = PropertyMock(return_value=bytes())
     type(requests_result_mock).content = content_mock
     get_mock.return_value = requests_result_mock
     results = self.plugin._download_results(RESULT_DICT)
     status_code_mock.assert_called_once()
     content_mock.assert_not_called()
     self.assertEqual(self.plugin.tradefed_results_url, RESULT_URL)
     self.assertIsNone(results.test_results)
     self.assertIsNone(results.tradefed_stdout)
     self.assertIsNone(results.tradefed_logcat)
Пример #11
0
    def test_run_persist(
        self,
        mock_execute: MagicMock,
        mock_unlock: MagicMock,
        mock_lock: MagicMock,
        mock_graph_tags: PropertyMock,
    ) -> None:
        """Test run persist."""
        mock_graph_tags.return_value = {}
        context = self._get_context(
            extra_config_args={"persistent_graph_key": "test.json"})
        context._persistent_graph = Graph.from_steps(
            [Step.from_stack_name("removed", context)])
        deploy_action = deploy.Action(context=context)
        deploy_action.run()

        mock_graph_tags.assert_called_once()
        mock_lock.assert_called_once()
        mock_execute.assert_called_once()
        mock_unlock.assert_called_once()
Пример #12
0
    def verify_super_property_called_with_wait(self, prop_name):
        """
        Verifies that accessing the given property calls the equally
        named property on the super class.
        """
        with patch(
            '__builtin__.super'
        ) as mock_super, patch.object(
            self.instance, 'wait_for_angular'
        ) as mock_wait_for_angular:
            # setup the mocked property
            mock_prop = PropertyMock(name='super.{}'.format(prop_name))
            setattr(type(mock_super.return_value), prop_name, mock_prop)

            result = getattr(self.instance, prop_name)

        mock_wait_for_angular.assert_called_once()
        mock_super.assert_called_once_with(WebDriverMixin, self.instance)
        mock_prop.assert_called_once()
        self.assertIs(result, mock_prop.return_value)
Пример #13
0
    def verify_super_property_called_with_wait(self, prop_name):
        """
        Verifies that accessing the given property calls the equally
        named property on the super class.
        """
        with patch(
            '__builtin__.super'
        ) as mock_super, patch.object(
            self.instance, 'wait_for_angular'
        ) as mock_wait_for_angular:
            # setup the mocked property
            mock_prop = PropertyMock(name='super.{}'.format(prop_name))
            setattr(type(mock_super.return_value), prop_name, mock_prop)

            result = getattr(self.instance, prop_name)

        mock_wait_for_angular.assert_called_once()
        mock_super.assert_called_once_with(WebDriverMixin, self.instance)
        mock_prop.assert_called_once()
        self.assertIs(result, mock_prop.return_value)
Пример #14
0
  def test_get_scheduler(self):
    """Tests successful execution of the get_scheduler command."""
    mock_options = self.setup_mock_options()
    mock_proxy = Mock(spec=SchedulerProxy)
    mock_scheduler_client = Mock(spec=SchedulerClient)
    mock_raw_url = PropertyMock(return_value="url")
    mock_proxy.scheduler_client.return_value = mock_scheduler_client
    mock_scheduler_client.raw_url = mock_raw_url

    with contextlib.nested(
        patch('twitter.common.app.get_options', return_value=mock_options),
        patch('apache.aurora.client.commands.admin.AuroraClientAPI',
              new=Mock(spec=AuroraClientAPI)),
        patch('apache.aurora.client.commands.admin.CLUSTERS', new=self.TEST_CLUSTERS),
    ) as (_, api, _):

      api.return_value.scheduler_proxy = PropertyMock(return_value=mock_proxy)

      get_scheduler([self.TEST_CLUSTER])

      mock_raw_url.assert_called_once()
Пример #15
0
    def test_drink(self):
        #is carrying
        #has 1 left

        #Not carrying
        potion = potions.StrengthPotion()
        self.assertEqual(potion.count, 1)
        player = Mock()
        mock_is_carrying = PropertyMock(return_value=False)
        player.is_carrying = mock_is_carrying
        self.assertFalse(potion.drink(player))
        mock_is_carrying.assert_called_once()
        self.assertEqual(potion.count, 1)

        #Carrying
        mock_is_carrying.return_value = True
        self.assertTrue(potion.drink(player))
        self.assertEqual(potion.count, 0)

        #None left
        self.assertFalse(potion.drink(player))