Beispiel #1
0
def test_oauth_authentication(mocked_authenticate, webserver):
    """Test oauth_authentication."""
    fake_url = Mock()
    storage = Mock(BasicStorage)
    storage.grant_url = Mock(return_value=fake_url)
    mocked_server = Mock(OAuthHTTPServer)
    mocked_server.shutdown = Mock(side_effect=OSError)
    mocked_server.socket = Mock(return_value='bla')
    mocked_server.done_event = Mock()

    if webserver:
        mocked_server.result = 'fake_result'
    else:
        mocked_server.result = None

    credentials = 'fake_credentials'
    identifier = 'fake_identifier'
    auth_return = (None, credentials, identifier)
    storage.authenticate = Mock(return_value=auth_return)
    mocked_authenticate.storage = storage
    with patch('cc.client.OAuthHTTPServer', return_value=mocked_server) as mock_oauth, \
            patch('cc.client.webbrowser') as mocked_webbrowser:
        StorageAuthenticator._oauth_authentication(mocked_authenticate, False)

    mock_oauth.assert_called_with(fake_url.check_function)
    mocked_webbrowser.open.assert_called_with(fake_url.grant_url)
    assert mocked_server.shutdown.called_once()
    assert mocked_server.socket.close.called_once()
    assert mocked_server.socket.shutdown.called_once()

    if webserver:
        assert mocked_authenticate.auth_data['credentials'] == credentials
        assert mocked_authenticate.auth_data['identifier'] == identifier
    else:
        assert mocked_authenticate.auth_data == {}
Beispiel #2
0
    def test_is_success(self):
        self.task.query_extra_data_for_test_task = Mock()
        tt = TaskTester(self.task, self.path, Mock(), Mock())
        task_thread = Mock()

        # Proper task
        task_thread.error = None
        task_thread.result = ({"data": True}, 123)
        assert tt.is_success(task_thread)

        # Task thead result first arg is not tuple
        task_thread.result = {"data": True}
        assert not tt.is_success(task_thread)
        assert task_thread.error == "Wrong result format"
    def test_success(self, UrlFetchClassMock):
        # Mocking pagseguro Fetch
        UrlFetchClassMock.return_value = _build_mock()

        # Mocking previous command
        data_cmd_mock = Mock()
        data_cmd_mock.access_data.email = '*****@*****.**'
        data_cmd_mock.access_data.token = '4567890oiuytfgh'
        reference0 = ItemReferenceMock()
        reference1 = ItemReferenceMock()
        items = [PagSegItem(description='Python Course', price=Decimal('120'), quantity=1, reference=reference0.key),
                 PagSegItem(description='Another Python Course', price=Decimal('240'), quantity=2,
                            reference=reference1.key)]
        ndb.put_multi(items)
        data_cmd_mock.items = items
        data_cmd_mock.client_form = ValidateClientCmd(email='*****@*****.**', name='Jhon Doe').form
        data_cmd_mock.address_form = pagseguro_facade.validate_address_cmd('Rua 1', '2', 'meu bairro', '12345678',
                                                                              'São Paulo', 'SP', 'apto 4').form

        payment = PagSegPayment()
        payment.put()
        data_cmd_mock.result = payment

        contact_pagseguro_cmd = ContactPagseguro('https://store.com/pagseguro')
        CommandSequential(data_cmd_mock, contact_pagseguro_cmd).execute()

        self.assertEqual(payment, contact_pagseguro_cmd.result)
        self.assertEqual(payment.status, STATUS_SENT_TO_PAGSEGURO)
        self.assertEqual(contact_pagseguro_cmd.checkout_code, _SUCCESS_PAGSEGURO_CODE,
                         'Should have the code extracted from xml _PAGSEGURO_DETAIL_XML')
        self.assertIsNone(payment.code)
Beispiel #4
0
    def test_get_user_stack_status_resume_after_suspend(self):
        self.init_block()

        now = int(time.time())
        suspend_timeout = self.block.configuration.get("suspend_timeout")
        suspend_timestamp = now - suspend_timeout
        self.block.stacks = {
            self.block.stack_name: {
                "suspend_timestamp": suspend_timestamp,
                "status": {"status": "CREATE_COMPLETE"}
            }
        }

        mock_result = Mock()
        mock_result.ready.return_value = True
        mock_result.successful.return_value = True
        mock_result.result = {"status": "RESUME_COMPLETE"}
        mock_launch_stack_task=Mock(return_value=mock_result)
        mock_suspend_user_stack=Mock()

        with patch.multiple(self.block,
            launch_stack_task=mock_launch_stack_task,
            suspend_user_stack=mock_suspend_user_stack
        ):
            data = {
                "initialize": True,
                "reset": False
            }
            result = self.call_handler("get_user_stack_status", data)

        self.assertEqual(result, mock_result.result)
        self.assertTrue(mock_launch_stack_task.called)
        self.assertTrue(mock_suspend_user_stack.called)
Beispiel #5
0
def test_run_interactive(capfd):
    """Ensure the calls to run a command on a list of hosts interactively."""

    runner = Bladerunner({"threads": 14})
    fake_result = Mock()
    fake_result.result = Mock(return_value="fake results")

    mock_con = Mock()
    runner.interactive_hosts = {"fake host": mock_con}

    fake_thread = Mock()
    fake_thread.__enter__ = fake_context
    fake_thread.__exit__ = fake_context
    fake_thread.submit = Mock(return_value=fake_result)

    threadpool_mock = patch.object(
        base,
        "ThreadPoolExecutor",
        return_value=fake_thread,
    )

    with patch.object(runner, "setup_interactive") as mock_setup:
        with threadpool_mock as mock_threadpool:
            runner.run_interactive("fake cmd", "fake host")

    mock_setup.assert_called_once_with("fake host")
    mock_threadpool.assert_called_once_with(max_workers=14)

    stdout, stderr = capfd.readouterr()
    assert stdout == "fake host: fake results\n"
    assert stderr == ""
 def test_no_logged_user(self, cookie_facade):
     cmd_mock = Mock()
     cmd_mock.execute = Mock(return_value=cmd_mock)
     cmd_mock.result = None
     cookie_facade.retrive_cookie_data = Mock(return_value=cmd_mock)
     result = facade.logged_user(None).execute().result
     self.assertIsNone(result)
Beispiel #7
0
def test_run_interactive_returns():
    """Confirm the dict return when print_results is False."""

    runner = Bladerunner({"threads": 17})
    fake_result = Mock()
    fake_result.result = Mock(return_value="some result")

    mock_con = Mock()
    runner.interactive_hosts = {"host": mock_con}

    fake_thread = Mock()
    fake_thread.__enter__ = fake_context
    fake_thread.__exit__ = fake_context
    fake_thread.submit = Mock(return_value=fake_result)

    threadpool_mock = patch.object(
        base,
        "ThreadPoolExecutor",
        return_value=fake_thread,
    )

    with patch.object(runner, "setup_interactive") as mock_setup:
        with threadpool_mock as mock_threadpool:
            results = runner.run_interactive("ok", "host", print_results=False)

    mock_setup.assert_called_once_with("host")
    mock_threadpool.assert_called_once_with(max_workers=17)

    assert results == {"host": "some result"}
Beispiel #8
0
    def test_get_user_stack_status_reset_before_suspend(self):
        self.init_block()

        suspend_timeout = self.block.configuration.get("suspend_timeout")
        timedelta = timezone.timedelta(seconds=(suspend_timeout - 1))
        suspend_timestamp = timezone.now() - timedelta
        course_id, student_id = self.block.get_block_ids()
        stack, _ = hastexo.models.Stack.objects.get_or_create(
            student_id=student_id,
            course_id=course_id,
            name=self.block.stack_name,
            suspend_timestamp=suspend_timestamp,
            status='RESUME_COMPLETE'
        )

        mock_result = Mock()
        mock_result.id = 'bogus_task_id'
        mock_result.ready.return_value = True
        mock_result.successful.return_value = True
        mock_result.result = {"status": "CREATE_COMPLETE"}
        mock_launch_stack_task = Mock(return_value=mock_result)
        mock_get_stack_template = Mock(return_value=('bogus_stack_template'))

        with patch.multiple(self.block,
                            launch_stack_task=mock_launch_stack_task,
                            get_stack_template=mock_get_stack_template):
            data = {
                "initialize": True,
                "reset": True
            }
            result = self.call_handler("get_user_stack_status", data)

        self.assertEqual(result, mock_result.result)
        self.assertTrue(mock_launch_stack_task.called)
Beispiel #9
0
def test_scheduler_requeues_on_rwc_failure(in_memory_queue_connection,
                                           default_in_memory_producer,
                                           consume_queue):
    """Test scheduler requeues requests if RWC fails to start workflows."""
    scheduler = WorkflowExecutionScheduler(
        connection=in_memory_queue_connection)

    in_memory_wsp = WorkflowSubmissionPublisher(
        connection=in_memory_queue_connection)
    in_memory_wsp.publish_workflow_submission("1", "workflow.1", {})
    mock_rwc_api_client = Mock()
    mock_result_obj = Mock()
    mock_response = Mock()
    mock_response.status_code = 502
    mock_result_obj.result = Mock(side_effect=HTTPError(
        mock_response, message="DB connection timed out."))
    mock_rwc_api_client.api.set_workflow_status.return_value = mock_result_obj
    with patch.multiple(
            "reana_server.scheduler",
            reana_ready=Mock(return_value=True),
            current_rwc_api_client=mock_rwc_api_client,
            current_workflow_submission_publisher=in_memory_wsp,
    ):
        consume_queue(scheduler, limit=1)
        assert (not in_memory_queue_connection.channel().
                queues["workflow-submission"].empty())
Beispiel #10
0
    def test_save_payment_arcs_command_mocked(self):
        command_with_item_forms = Mock()
        items = [
            PagSegItem(description='Python Birds',
                       price=Decimal('18.99'),
                       quantity=3),
            PagSegItem(description='Objetos Pythônicos',
                       price=Decimal('24.99'),
                       quantity=2,
                       reference=ndb.Key(PagSegItem, 10))
        ]
        command_with_item_forms.items = items

        ndb.put_multi(items)
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        payment_owner = mommy.save_one(Node)
        save_payment_arcs_cmd = SavePaymentArcsCmd(payment_owner)
        CommandSequential(command_with_item_forms,
                          save_payment_arcs_cmd).execute()

        self.assertEqual(payment,
                         pagseguro_facade.search_payments(payment_owner)()[0])

        logs = SearchLogs(payment)()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_CREATED, logs[0].status)

        self.assertListEqual(items, SearchItems(payment)())
Beispiel #11
0
def test_run_interactive_returns():
    """Confirm the dict return when print_results is False."""

    runner = Bladerunner({"threads": 17})
    fake_result = Mock()
    fake_result.result = Mock(return_value="some result")

    mock_con = Mock()
    runner.interactive_hosts = {"host": mock_con}

    fake_thread = Mock()
    fake_thread.__enter__ = fake_context
    fake_thread.__exit__ = fake_context
    fake_thread.submit = Mock(return_value=fake_result)

    threadpool_mock = patch.object(
        base,
        "ThreadPoolExecutor",
        return_value=fake_thread,
    )

    with patch.object(runner, "setup_interactive") as mock_setup:
        with threadpool_mock as mock_threadpool:
            results = runner.run_interactive("ok", "host", print_results=False)

    mock_setup.assert_called_once_with("host")
    mock_threadpool.assert_called_once_with(max_workers=17)

    assert results == {"host": "some result"}
    def test_save_item_arcs_command(self):
        command_with_item_forms = Mock()
        access_data = CreateOrUpdateAccessData('*****@*****.**', 'abc1234')()

        items = [PagSegItem(description='Python Birds', price=Decimal('18.99'), quantity=3),
                 PagSegItem(description='Objetos Pythônicos', price=Decimal('24.99'), quantity=2,
                            reference=ndb.Key(PagSegItem, 10))]
        command_with_item_forms.items = items

        address_form_mock = Mock()
        client_form_mock = Mock()

        command_with_item_forms.address_form = address_form_mock
        command_with_item_forms.client_form = client_form_mock
        command_with_item_forms.access_data = access_data

        ndb.put_multi(items)
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        save_payment_to_items_arcs_cmd = SavePaymentToItemsArcs()
        CommandSequential(command_with_item_forms, save_payment_to_items_arcs_cmd).execute()

        self.assertListEqual(items, SearchItems(payment)())
        self.assertListEqual(items, save_payment_to_items_arcs_cmd.items)

        # Data used for sequential commands
        self.assertEqual('*****@*****.**', save_payment_to_items_arcs_cmd.access_data.email)
        self.assertEqual('abc1234', save_payment_to_items_arcs_cmd.access_data.token)
        self.assertEqual(save_payment_to_items_arcs_cmd.address_form, address_form_mock)
        self.assertEqual(save_payment_to_items_arcs_cmd.client_form, client_form_mock)
Beispiel #13
0
def test_run_interactive(capfd):
    """Ensure the calls to run a command on a list of hosts interactively."""

    runner = Bladerunner({"threads": 14})
    fake_result = Mock()
    fake_result.result = Mock(return_value="fake results")

    mock_con = Mock()
    runner.interactive_hosts = {"fake host": mock_con}

    fake_thread = Mock()
    fake_thread.__enter__ = fake_context
    fake_thread.__exit__ = fake_context
    fake_thread.submit = Mock(return_value=fake_result)

    threadpool_mock = patch.object(
        base,
        "ThreadPoolExecutor",
        return_value=fake_thread,
    )

    with patch.object(runner, "setup_interactive") as mock_setup:
        with threadpool_mock as mock_threadpool:
            runner.run_interactive("fake cmd", "fake host")

    mock_setup.assert_called_once_with("fake host")
    mock_threadpool.assert_called_once_with(max_workers=14)

    stdout, stderr = capfd.readouterr()
    assert stdout == "fake host: fake results\n"
    assert stderr == ""
 def test_logged_user(self, cookie_facade):
     user = mommy.save_one(MainUser)
     cmd_mock = Mock()
     cmd_mock.execute = Mock(return_value=cmd_mock)
     cmd_mock.result = {'id': user.key.id()}
     cookie_facade.retrive_cookie_data = Mock(return_value=cmd_mock)
     result = facade.logged_user(None).execute().result
     self.assertEqual(user, result)
Beispiel #15
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or (["{}"], "", 0)
    conn = Mock()
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.result = Mock(return_value=conn)
    return conn
Beispiel #16
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or (['{}'], '', 0)
    conn = Mock()
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.result = Mock(return_value=conn)
    return conn
Beispiel #17
0
def mock_protocol():
    mproto = Mock(RPCProtocol)

    foo = Mock(RPCResponse)
    foo.result = None

    mproto.parse_reply = Mock(return_value=foo)

    return mproto
Beispiel #18
0
 def create_blank_response(cls, code, msg):
     response = Mock(spec=Response)
     response.responseCode = code
     mock_msg = Mock()
     mock_msg.message = msg
     response.details = [mock_msg]
     response.messageDEPRECATED = msg
     response.result = Mock(spec=Result)
     return response
Beispiel #19
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or (['{}'], '', 0)
    conn = Mock()
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.gateway.remote_exec = conn.receive
    conn.result = Mock(return_value=conn)
    return conn
Beispiel #20
0
 def create_blank_response(cls, code, msg):
   response = Mock(spec=Response)
   response.responseCode = code
   mock_msg = Mock()
   mock_msg.message = msg
   response.details = [mock_msg]
   response.messageDEPRECATED = msg
   response.result = Mock(spec=Result)
   return response
Beispiel #21
0
def mock_protocol():
    mproto = Mock(RPCProtocol)

    foo = Mock(RPCResponse)
    foo.result = None

    mproto.parse_reply = Mock(return_value=foo)

    return mproto
Beispiel #22
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or ([b'{}'], [], 0)
    conn = Mock()
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.gateway.remote_exec = conn.receive
    conn.result = Mock(return_value=conn)
    return conn
 def test_no_logged_user(self, facade):
     cmd_mock = Mock()
     cmd_mock.execute = Mock(return_value=cmd_mock)
     cmd_mock.result = None
     facade.logged_user = Mock(return_value=cmd_mock)
     dependency = {}
     middleware.LoggedUserMiddleware(Mock(), dependency, Mock()).set_up()
     self.assertEqual({'_login_path': '/login',
                       '_logout_path': '/logout',
                       '_logged_user': None}, dependency)
Beispiel #24
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or ([b'{}'], [], 0)
    conn = Mock()
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.gateway.remote_exec = conn.receive
    conn.result = Mock(return_value=conn)
    conn.cmd = lambda x: x
    return conn
    def test_save_payment_to_log_command(self):
        command_with_item_forms = Mock()
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        save_payment_to_log_cmd = SavePaymentToLog()
        CommandSequential(command_with_item_forms, save_payment_to_log_cmd).execute()

        logs = SearchLogs(payment)()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_CREATED, logs[0].status)
Beispiel #26
0
def make_fake_conn(receive_returns=None):
    receive_returns = receive_returns or (['{}'], [], 0)
    conn = Mock()
    conn.cmd = lambda x: x
    conn.sudo = ''
    conn.return_value = conn
    conn.execute = conn
    conn.receive = Mock(return_value=receive_returns)
    conn.gateway.remote_exec = conn.receive
    conn.result = Mock(return_value=conn)
    conn.cmd = lambda x: x
    return conn
 def test_logged_user(self, facade):
     user = mommy.save_one(MainUser)
     user.put()
     cmd_mock = Mock()
     cmd_mock.execute = Mock(return_value=cmd_mock)
     cmd_mock.result = user
     facade.logged_user = Mock(return_value=cmd_mock)
     dependency = {}
     middleware.LoggedUserMiddleware(Mock(), dependency, Mock()).set_up()
     self.assertEqual({'_login_path': None,
                       '_logout_path': '/logout',
                       '_logged_user': user}, dependency)
 def test_no_logged_user(self, facade):
     cmd_mock = Mock()
     cmd_mock.execute = Mock(return_value=cmd_mock)
     cmd_mock.result = None
     facade.logged_user = Mock(return_value=cmd_mock)
     dependency = {}
     handler = Mock()
     handler.request.path_qs='/foo?param1=1&param2=2'
     middleware.LoggedUserMiddleware(handler, dependency, Mock()).set_up()
     self.assertEqual({'_login_path': '/login?ret_path=%2Ffoo%3Fparam1%3D1%26param2%3D2',
                       '_logout_path': None,
                       '_logged_user': None}, dependency)
Beispiel #29
0
 def create_mock_status_query_result(cls, scheduleStatus):
   mock_query_result = Mock(spec=Response)
   mock_query_result.result = Mock(spec=Result)
   mock_query_result.result.scheduleStatusResult = Mock(spec=ScheduleStatusResult)
   if scheduleStatus == ScheduleStatus.INIT:
     # status query result for before job is launched.
     mock_query_result.result.scheduleStatusResult.tasks = []
   else:
     mock_task_one = cls.create_mock_task('hello', 0, 1000, scheduleStatus)
     mock_task_two = cls.create_mock_task('hello', 1, 1004, scheduleStatus)
     mock_query_result.result.scheduleStatusResult.tasks = [mock_task_one, mock_task_two]
   return mock_query_result
Beispiel #30
0
    def test_buildsetFinished_sends_email(self):
        fakeBuildMessage = Mock()
        mn = MailNotifier('*****@*****.**', 
                          buildSetSummary=True, 
                          mode="all",
                          builders=["Builder"])
        
        mn.buildMessage = fakeBuildMessage
        
        def fakeGetBuild(number):
            return build
        
        def fakeGetBuilder(buildername):
            if buildername == builder.name: 
                return builder
            return None
        
        def fakeGetBuildRequests(self, bsid):
            return defer.succeed([{"buildername":"Builder", "brid":1}])
 
        builder = Mock()
        builder.getBuild = fakeGetBuild
        builder.name = "Builder"
        
        build = Mock()
        build.result = FAILURE
        build.finished = True
        build.reason = "testReason"
        build.builder = builder
        build.getBuilder = Mock()
        build.getBuilder.return_value = builder
       
       
        self.db = fakedb.FakeDBConnector(self)
        self.db.insertTestData([fakedb.Buildset(id=99, sourcestampid=127,
                                                results=SUCCESS,
                                                reason="testReason"),
                                fakedb.BuildRequest(id=11, buildsetid=99,
                                                    buildername='Builder'),
                                fakedb.Build(number=0, brid=11, results=SUCCESS)
                                ])
        mn.master = self # FIXME: Should be FakeMaster
        
        self.status = Mock()
        mn.master_status = Mock()
        mn.master_status.getBuilder = fakeGetBuilder
        mn.buildMessageDict = Mock()
        mn.buildMessageDict.return_value = {"body":"body", "type":"text",
                                            "subject":"subject"}
            
        mn.buildsetFinished(99, FAILURE)
        fakeBuildMessage.assert_called_with("Buildset Complete: testReason",
                                            [build], SUCCESS)
Beispiel #31
0
    def test_save_payment_to_log_command(self):
        command_with_item_forms = Mock()
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        save_payment_to_log_cmd = SavePaymentToLog()
        CommandSequential(command_with_item_forms,
                          save_payment_to_log_cmd).execute()

        logs = SearchLogs(payment)()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_CREATED, logs[0].status)
Beispiel #32
0
 def create_mock_status_query_result(cls, scheduleStatus):
   mock_query_result = Mock(spec=Response)
   mock_query_result.result = Mock(spec=Result)
   mock_query_result.result.scheduleStatusResult = Mock(spec=ScheduleStatusResult)
   if scheduleStatus == ScheduleStatus.INIT:
     # status query result for before job is launched.
     mock_query_result.result.scheduleStatusResult.tasks = []
   else:
     mock_task_one = cls.create_mock_task('hello', 0, 1000, scheduleStatus)
     mock_task_two = cls.create_mock_task('hello', 1, 1004, scheduleStatus)
     mock_query_result.result.scheduleStatusResult.tasks = [mock_task_one, mock_task_two]
   return mock_query_result
    def test_buildsetFinished_sends_email(self):
        fakeBuildMessage = Mock()
        mn = MailNotifier('*****@*****.**', 
                          buildSetSummary=True, 
                          mode="all",
                          builders=["Builder"])
        
        mn.buildMessage = fakeBuildMessage
        
        def fakeGetBuild(number):
            return build
        
        def fakeGetBuilder(buildername):
            if buildername == builder.name: 
                return builder
            return None
        
        def fakeGetBuildRequests(self, bsid):
            return defer.succeed([{"buildername":"Builder", "brid":1}])
 
        builder = Mock()
        builder.getBuild = fakeGetBuild
        builder.name = "Builder"
        
        build = Mock()
        build.result = FAILURE
        build.finished = True
        build.reason = "testReason"
        build.builder = builder
        build.getBuilder = Mock()
        build.getBuilder.return_value = builder
       
       
        self.db = fakedb.FakeDBConnector(self)
        self.db.insertTestData([fakedb.Buildset(id=99, sourcestampid=127,
                                                results=SUCCESS,
                                                reason="testReason"),
                                fakedb.BuildRequest(id=11, buildsetid=99,
                                                    buildername='Builder'),
                                fakedb.Build(number=0, brid=11, results=SUCCESS)
                                ])
        mn.parent = self
        
        self.status = Mock()
        mn.master_status = Mock()
        mn.master_status.getBuilder = fakeGetBuilder
        mn.buildMessageDict = Mock()
        mn.buildMessageDict.return_value = {"body":"body", "type":"text",
                                            "subject":"subject"}
            
        mn.buildsetFinished(99, FAILURE)
        fakeBuildMessage.assert_called_with("Buildset Complete: testReason",
                                            [build], SUCCESS)
    def test_execute(self, timeseries_mock):
        response = Mock()
        response.result = SAMPLE_DRUID_RESPONSE

        self.test_druid_check = DRUID_CHECK.copy()

        timeseries_mock.return_value = response

        with patch('alamo_worker.plugins.druid.DruidPlugin.process') as proc:
            self.druid.execute(self.test_druid_check)
            self.assertTrue(proc.called)
            proc.assert_called_once_with(
                self.test_druid_check, SAMPLE_DRUID_RESPONSE
            )
Beispiel #35
0
    def test_autodetect_import_csv_raises_on_failure_to_detect_encoding(
            self, mock_UniversalDetector):
        mock_detector = Mock()
        mock_UniversalDetector.return_value = mock_detector
        mock_detector.result = {'encoding': None}

        mock_file = StringIO()
        mock_file.write("\xFF\x00\xFF")
        mock_file.name = 'filename'
        mock_file.size = 10

        self.assertRaises(
            DirigibleImportError,
            lambda: worksheet_from_csv(Worksheet(), mock_file, 1, 1, False))
Beispiel #36
0
 def _get_output_for_task_success(self, attempted, updated, total, student=None):
     """returns the task_id and the result returned by instructor_task_status()."""
     # view task entry for task in progress
     instructor_task = self._create_progress_entry(student)
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = SUCCESS
     mock_result.result = {'attempted': attempted,
                           'updated': updated,
                           'total': total,
                           'action_name': 'rescored'}
     output = self._test_get_status_from_result(task_id, mock_result)
     return output
    def test_autodetect_import_csv_raises_on_failure_to_detect_encoding(
            self, mock_UniversalDetector
    ):
        mock_detector = Mock()
        mock_UniversalDetector.return_value = mock_detector
        mock_detector.result = {'encoding':None}

        mock_file = StringIO()
        mock_file.write("\xFF\x00\xFF")
        mock_file.name = 'filename'
        mock_file.size = 10

        self.assertRaises(DirigibleImportError,
                lambda : worksheet_from_csv(Worksheet(), mock_file, 1, 1, False)
        )
    def test_update_payment_and_save_log_command(self):
        command_with_item_forms = Mock()
        payment = mommy.save_one(PagSegPayment, status=STATUS_CREATED)
        command_with_item_forms.result = payment
        payment.status = STATUS_SENT_TO_PAGSEGURO

        save_payment_to_log_cmd = UpdatePaymentAndSaveLog()
        CommandSequential(command_with_item_forms, save_payment_to_log_cmd).execute()

        search = SearchLogs(payment)
        logs = search()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_SENT_TO_PAGSEGURO, logs[0].status)
        self.assertEqual(STATUS_SENT_TO_PAGSEGURO, payment.key.get().status)
        self.assertEqual(save_payment_to_log_cmd.result, payment)
Beispiel #39
0
    def test_update_payment_and_save_log_command(self):
        command_with_item_forms = Mock()
        payment = mommy.save_one(PagSegPayment, status=STATUS_CREATED)
        command_with_item_forms.result = payment
        payment.status = STATUS_SENT_TO_PAGSEGURO

        save_payment_to_log_cmd = UpdatePaymentAndSaveLog()
        CommandSequential(command_with_item_forms,
                          save_payment_to_log_cmd).execute()

        search = SearchLogs(payment)
        logs = search()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_SENT_TO_PAGSEGURO, logs[0].status)
        self.assertEqual(STATUS_SENT_TO_PAGSEGURO, payment.key.get().status)
        self.assertEqual(save_payment_to_log_cmd.result, payment)
Beispiel #40
0
 def decorated(self, *args, **kwargs):
     conn = Mock(name='conn')
     tmp = Mock(name='tmp')
     inject = Mock(name='inject')
     if em_side_effect is None:
         return_value = Mock(name='return_value')
         return_value.is_successful = Mock(return_value=em_successful)
         return_value.result = em_result
         e_m = Mock(name='execute_module', return_value=return_value)
     else:
         e_m = Mock(side_effect=em_side_effect)
     runner = Mock()
     runner._execute_module = e_m
     connection = self.connection_class(conn, tmp, inject, runner)
     return method(self, connection, conn, tmp, inject, runner, e_m, 
             *args, **kwargs)
Beispiel #41
0
 def create_getjobs_response(cls):
   result = Mock(spec=Response)
   result.responseCode = ResponseCode.OK
   result.result = Mock(spec=Result)
   result.result.getJobsResult = Mock(spec=GetJobsResult)
   mock_job_one = Mock(spec=JobConfiguration)
   mock_job_one.key = Mock(spec=JobKey)
   mock_job_one.key.role = 'RoleA'
   mock_job_one.key.environment = 'test'
   mock_job_one.key.name = 'hithere'
   mock_job_two = Mock(spec=JobConfiguration)
   mock_job_two.key = Mock(spec=JobKey)
   mock_job_two.key.role = 'bozo'
   mock_job_two.key.environment = 'test'
   mock_job_two.key.name = 'hello'
   result.result.getJobsResult.configs = [mock_job_one, mock_job_two]
   return result
Beispiel #42
0
 def test_update_progress_to_progress(self):
     # view task entry for task in progress
     instructor_task = self._create_progress_entry()
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = PROGRESS
     mock_result.result = {'attempted': 5,
                           'updated': 4,
                           'total': 10,
                           'action_name': 'rescored'}
     output = self._test_get_status_from_result(task_id, mock_result)
     self.assertEquals(output['message'], "Progress: rescored 4 of 5 so far (out of 10)")
     self.assertEquals(output['succeeded'], False)
     self.assertEquals(output['task_state'], PROGRESS)
     self.assertTrue(output['in_progress'])
     self.assertEquals(output['task_progress'], mock_result.result)
 def create_getjobs_response(cls):
     result = Mock()
     result.responseCode = ResponseCode.OK
     result.result = Mock()
     result.result.getJobsResult = Mock()
     mock_job_one = Mock()
     mock_job_one.key = Mock()
     mock_job_one.key.role = 'RoleA'
     mock_job_one.key.environment = 'test'
     mock_job_one.key.name = 'hithere'
     mock_job_two = Mock()
     mock_job_two.key = Mock()
     mock_job_two.key.role = 'bozo'
     mock_job_two.key.environment = 'test'
     mock_job_two.key.name = 'hello'
     result.result.getJobsResult.configs = [mock_job_one, mock_job_two]
     return result
Beispiel #44
0
 def test_update_progress_to_failure(self):
     # view task entry for task in progress that later fails
     instructor_task = self._create_progress_entry()
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = FAILURE
     mock_result.result = NotImplementedError("This task later failed.")
     mock_result.traceback = "random traceback"
     output = self._test_get_status_from_result(task_id, mock_result)
     self.assertEquals(output['message'], "This task later failed.")
     self.assertEquals(output['succeeded'], False)
     self.assertEquals(output['task_state'], FAILURE)
     self.assertFalse(output['in_progress'])
     expected_progress = {'exception': 'NotImplementedError',
                          'message': "This task later failed.",
                          'traceback': "random traceback"}
     self.assertEquals(output['task_progress'], expected_progress)
    def test_render_result(self, mako_template):
        task = tasks.PythonTask()
        task.result_template = 'result.mak'
        task.task_dir = Mock(return_value='/tmp/task')
        result = Mock(AsyncResult)
        result.successful.return_value = True
        result.result = {'query': 'myquery'}
        from mako.template import Template
        tpl = Mock(Template)
        tpl.render.return_value = 'mytemplate'
        mako_template.return_value = tpl
        files = ['result.csv']

        html = task.render_result(result, files)

        self.assertEquals(html, 'mytemplate')
        mako_template.assert_called_with(filename='/tmp/task/result.mak', output_encoding='utf-8')
        tpl.render.assert_called_with(query='myquery', files=files)
Beispiel #46
0
    def test_save_item_arcs_command(self):
        command_with_item_forms = Mock()
        access_data = CreateOrUpdateAccessData('*****@*****.**', 'abc1234')()

        items = [
            PagSegItem(description='Python Birds',
                       price=Decimal('18.99'),
                       quantity=3),
            PagSegItem(description='Objetos Pythônicos',
                       price=Decimal('24.99'),
                       quantity=2,
                       reference=ndb.Key(PagSegItem, 10))
        ]
        command_with_item_forms.items = items

        address_form_mock = Mock()
        client_form_mock = Mock()

        command_with_item_forms.address_form = address_form_mock
        command_with_item_forms.client_form = client_form_mock
        command_with_item_forms.access_data = access_data

        ndb.put_multi(items)
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        save_payment_to_items_arcs_cmd = SavePaymentToItemsArcs()
        CommandSequential(command_with_item_forms,
                          save_payment_to_items_arcs_cmd).execute()

        self.assertListEqual(items, SearchItems(payment)())
        self.assertListEqual(items, save_payment_to_items_arcs_cmd.items)

        # Data used for sequential commands
        self.assertEqual('*****@*****.**',
                         save_payment_to_items_arcs_cmd.access_data.email)
        self.assertEqual('abc1234',
                         save_payment_to_items_arcs_cmd.access_data.token)
        self.assertEqual(save_payment_to_items_arcs_cmd.address_form,
                         address_form_mock)
        self.assertEqual(save_payment_to_items_arcs_cmd.client_form,
                         client_form_mock)
Beispiel #47
0
 def _get_output_for_task_success(self,
                                  attempted,
                                  succeeded,
                                  total,
                                  student=None):
     """returns the task_id and the result returned by instructor_task_status()."""
     # view task entry for task in progress
     instructor_task = self._create_progress_entry(student)
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = SUCCESS
     mock_result.result = {
         'attempted': attempted,
         'succeeded': succeeded,
         'total': total,
         'action_name': 'rescored',
     }
     output = self._test_get_status_from_result(task_id, mock_result)
     return output
Beispiel #48
0
 def test_update_progress_to_failure(self):
     # view task entry for task in progress that later fails
     instructor_task = self._create_progress_entry()
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = FAILURE
     mock_result.result = NotImplementedError("This task later failed.")
     mock_result.traceback = "random traceback"
     output = self._test_get_status_from_result(task_id, mock_result)
     self.assertEquals(output['message'], "This task later failed.")
     self.assertEquals(output['succeeded'], False)
     self.assertEquals(output['task_state'], FAILURE)
     self.assertFalse(output['in_progress'])
     expected_progress = {
         'exception': 'NotImplementedError',
         'message': "This task later failed.",
         'traceback': "random traceback",
     }
     self.assertEquals(output['task_progress'], expected_progress)
Beispiel #49
0
 def test_update_progress_to_progress(self):
     # view task entry for task in progress
     instructor_task = self._create_progress_entry()
     task_id = instructor_task.task_id
     mock_result = Mock()
     mock_result.task_id = task_id
     mock_result.state = PROGRESS
     mock_result.result = {
         'attempted': 5,
         'succeeded': 4,
         'total': 10,
         'action_name': 'rescored',
     }
     output = self._test_get_status_from_result(task_id, mock_result)
     self.assertEquals(output['message'],
                       "Progress: rescored 4 of 5 so far (out of 10)")
     self.assertEquals(output['succeeded'], False)
     self.assertEquals(output['task_state'], PROGRESS)
     self.assertTrue(output['in_progress'])
     self.assertEquals(output['task_progress'], mock_result.result)
Beispiel #50
0
    def test_display_valid_syspurpose_role(self, mock_syspurpose_sync, mock_syspurpose):
        mock_syspurpose.read = Mock()
        mock_syspurpose.read.return_value = Mock()
        instance_syspurpose_store = mock_syspurpose.read.return_value
        instance_syspurpose_store.contents = {"role": "Foo"}

        self.cc.options = Mock(spec=["set", "unset"])
        self.cc.options.set = None
        self.cc.options.unset = False

        mock_syspurpose_sync.return_value = Mock()
        instance_mock_syspurpose_sync = mock_syspurpose_sync.return_value

        mock_sync_result = Mock()
        mock_sync_result.result = {"role": "Foo"}
        instance_mock_syspurpose_sync.perform = Mock(return_value=({}, mock_sync_result))

        with Capture() as cap:
            self.cc._do_command()
        self.assertIn("Current Role: Foo", cap.out)
Beispiel #51
0
    def test_success(self, UrlFetchClassMock):
        # Mocking pagseguro Fetch
        UrlFetchClassMock.return_value = _build_mock()

        # Mocking previous command
        data_cmd_mock = Mock()
        data_cmd_mock.access_data.email = '*****@*****.**'
        data_cmd_mock.access_data.token = '4567890oiuytfgh'
        reference0 = ItemReferenceMock()
        reference1 = ItemReferenceMock()
        items = [
            PagSegItem(description='Python Course',
                       price=Decimal('120'),
                       quantity=1,
                       reference=reference0.key),
            PagSegItem(description='Another Python Course',
                       price=Decimal('240'),
                       quantity=2,
                       reference=reference1.key)
        ]
        ndb.put_multi(items)
        data_cmd_mock.items = items
        data_cmd_mock.client_form = ValidateClientCmd(email='*****@*****.**',
                                                      name='Jhon Doe').form
        data_cmd_mock.address_form = pagseguro_facade.validate_address_cmd(
            'Rua 1', '2', 'meu bairro', '12345678', 'São Paulo', 'SP',
            'apto 4').form

        payment = PagSegPayment()
        payment.put()
        data_cmd_mock.result = payment

        contact_pagseguro_cmd = ContactPagseguro('https://store.com/pagseguro')
        CommandSequential(data_cmd_mock, contact_pagseguro_cmd).execute()

        self.assertEqual(payment, contact_pagseguro_cmd.result)
        self.assertEqual(payment.status, STATUS_SENT_TO_PAGSEGURO)
        self.assertEqual(
            contact_pagseguro_cmd.checkout_code, _SUCCESS_PAGSEGURO_CODE,
            'Should have the code extracted from xml _PAGSEGURO_DETAIL_XML')
        self.assertIsNone(payment.code)
Beispiel #52
0
 def test_get_check_status(self):
     self.init_block()
     mock_result = Mock()
     mock_result.id = 'bogus_task_id'
     mock_result.ready.return_value = True
     mock_result.successful.return_value = True
     mock_result.result = {
         "status": 'CHECK_PROGRESS_COMPLETE',
         "pass": 1,
         "total": 1
     }
     with patch.object(self.block, 'check_progress_task') as mock_task:
         with patch.object(self.block.runtime, 'publish') as mock_publish:
             mock_task.return_value = mock_result
             result = self.call_handler("get_check_status", {})
             self.assertEqual(result, mock_result.result)
             self.assertTrue(mock_task.called)
             mock_publish.assert_called_once_with(self.block, 'grade', {
                 'value': 1,
                 'max_value': 1
             })
Beispiel #53
0
    def test_get_user_stack_status_first_time(self):
        self.init_block()

        mock_result = Mock()
        mock_result.id = 'bogus_task_id'
        mock_result.ready.return_value = True
        mock_result.successful.return_value = True
        mock_result.result = {"status": "CREATE_COMPLETE"}
        mock_launch_stack_task = Mock(return_value=mock_result)
        mock_get_stack_template = Mock(return_value=('bogus_stack_template'))

        with patch.multiple(self.block,
                            launch_stack_task=mock_launch_stack_task,
                            get_stack_template=mock_get_stack_template):
            data = {
                "initialize": True,
                "reset": False
            }
            result = self.call_handler("get_user_stack_status", data)

        self.assertEqual(result, mock_result.result)
        self.assertTrue(mock_launch_stack_task.called)
    def test_save_payment_arcs_command_mocked(self):
        command_with_item_forms = Mock()
        items = [PagSegItem(description='Python Birds', price=Decimal('18.99'), quantity=3),
                 PagSegItem(description='Objetos Pythônicos', price=Decimal('24.99'), quantity=2,
                            reference=ndb.Key(PagSegItem, 10))]
        command_with_item_forms.items = items

        ndb.put_multi(items)
        payment = mommy.save_one(PagSegPayment)
        command_with_item_forms.result = payment

        payment_owner = mommy.save_one(Node)
        save_payment_arcs_cmd = SavePaymentArcsCmd(payment_owner)
        CommandSequential(command_with_item_forms, save_payment_arcs_cmd).execute()

        self.assertEqual(payment, pagseguro_facade.search_payments(payment_owner)()[0])

        logs = SearchLogs(payment)()
        self.assertEqual(1, len(logs))
        self.assertEqual(STATUS_CREATED, logs[0].status)

        self.assertListEqual(items, SearchItems(payment)())
Beispiel #55
0
    def test_get_user_stack_status_first_time(self):
        self.init_block()

        mock_result = Mock()
        mock_result.ready.return_value = True
        mock_result.successful.return_value = True
        mock_result.result = {"status": "CREATE_COMPLETE"}
        mock_launch_stack_task=Mock(return_value=mock_result)
        mock_suspend_user_stack=Mock()

        with patch.multiple(self.block,
            launch_stack_task=mock_launch_stack_task,
            suspend_user_stack=mock_suspend_user_stack
        ):
            data = {
                "initialize": True,
                "reset": False
            }
            result = self.call_handler("get_user_stack_status", data)

        self.assertEqual(result, mock_result.result)
        self.assertTrue(mock_launch_stack_task.called)
        self.assertTrue(mock_suspend_user_stack.called)
Beispiel #56
0
 def create_status_call_result(cls):
   """Set up the mock status call that will be used to get a task list for
   a batched kill command.
   """
   status_response = Mock(spec=Response)
   status_response.responseCode = ResponseCode.OK
   status_response.messageDEPRECATED = "Ok"
   status_response.result = Mock(spec=Result)
   schedule_status = Mock(spec=ScheduleStatusResult)
   status_response.result.scheduleStatusResult = schedule_status
   mock_task_config = Mock()
   # This should be a list of ScheduledTask's.
   schedule_status.tasks = []
   for i in range(20):
     task_status = Mock(spec=ScheduledTask)
     task_status.assignedTask = Mock(spec=AssignedTask)
     task_status.assignedTask.instanceId = i
     task_status.assignedTask.taskId = "Task%s" % i
     task_status.assignedTask.slaveId = "Slave%s" % i
     task_status.slaveHost = "Slave%s" % i
     task_status.assignedTask.task = mock_task_config
     schedule_status.tasks.append(task_status)
   return status_response
Beispiel #57
0
 def create_status_call_result(cls):
   """Set up the mock status call that will be used to get a task list for
   a batched kill command.
   """
   status_response = Mock(spec=Response)
   status_response.responseCode = ResponseCode.OK
   status_response.messageDEPRECATED = "Ok"
   status_response.result = Mock(spec=Result)
   schedule_status = Mock(spec=ScheduleStatusResult)
   status_response.result.scheduleStatusResult = schedule_status
   mock_task_config = Mock()
   # This should be a list of ScheduledTask's.
   schedule_status.tasks = []
   for i in range(20):
     task_status = Mock(spec=ScheduledTask)
     task_status.assignedTask = Mock(spec=AssignedTask)
     task_status.assignedTask.instanceId = i
     task_status.assignedTask.taskId = "Task%s" % i
     task_status.assignedTask.slaveId = "Slave%s" % i
     task_status.slaveHost = "Slave%s" % i
     task_status.assignedTask.task = mock_task_config
     schedule_status.tasks.append(task_status)
   return status_response
Beispiel #58
0
from mock import Mock

from celery import Task
from celery.result import AsyncResult, states as CeleryState

MockTaskChain = Mock(spec=Task, id="result-id")
MockTask = Mock(spec=Task, id="result-id", return_value=MockTaskChain)
MockTask.attach_mock(MockTask, "s")
MockTask.attach_mock(MockTask, "delay")

MockAsyncResultPartial = Mock(spec=AsyncResult)
MockAsyncResultPartial.attach_mock(Mock(return_value=True), "ready")
MockAsyncResultPartial.status = CeleryState.SUCCESS
MockAsyncResultPartial.result = (
    [1, 2, 3],
    [4, 5],
)

MockAsyncResultSuccess = Mock(spec=AsyncResult)
MockAsyncResultSuccess.attach_mock(Mock(return_value=True), "ready")
MockAsyncResultSuccess.status = CeleryState.SUCCESS
MockAsyncResultSuccess.result = (
    [1, 2, 3],
    [],
)

MockAsyncResultError = Mock(spec=AsyncResult)
MockAsyncResultError.attach_mock(Mock(return_value=True), "ready")
MockAsyncResultError.status = CeleryState.FAILURE

MockAsyncResultWaiting = Mock(spec=AsyncResult)
Beispiel #59
0
 def create_blank_response(cls, code, msg):
     response = Mock(spec=Response)
     response.responseCode = code
     response.message = msg
     response.result = Mock(spec=Result)
     return response
def mock_job_result(result):
    job_result = Mock(spec=JobResult)
    job_result.is_done.return_value = True
    job_result.result = {'result': [result]}
    return job_result