Ejemplo n.º 1
0
    def test_nodetype(self):
        mock_node = MagicMock(id=333)
        mock_node.type = 'vos:ContainerNode'
        client = Client()
        client.get_node = Mock(return_value=mock_node)
        self.assertEquals('vos:ContainerNode',
                          client._node_type('vos:/somenode'))
        self.assertTrue(client.isdir('vos:/somenode'))

        mock_node.type = 'vos:DataNode'
        self.assertEquals('vos:DataNode', client._node_type('vos:/somenode'))
        self.assertTrue(client.isfile('vos:/somenode'))

        # through a link
        mock_node.type = 'vos:ContainerNode'
        mock_link_node = Mock(type='vos:LinkNode')
        mock_link_node.target = 'vos:/somefile'
        client.get_node = Mock(
            side_effect=[mock_link_node, mock_node, mock_link_node, mock_node])
        self.assertEquals('vos:ContainerNode',
                          client._node_type('vos:/somenode'))
        self.assertTrue(client.isdir('vos:/somenode'))

        # through an external link - not sure why the type is DataNode in this case???
        mock_link_node.target = '/somefile'
        client.get_node = Mock(side_effect=[mock_link_node, mock_link_node])
        self.assertEquals('vos:DataNode', client._node_type('vos:/somenode'))
        self.assertTrue(client.isfile('vos:/somenode'))
Ejemplo n.º 2
0
    def test_nodetype(self):
        mock_node = MagicMock(id=333)
        mock_node.type = 'vos:ContainerNode'
        client = Client()
        client.get_node = Mock(return_value=mock_node)
        self.assertEquals('vos:ContainerNode',
                          client._node_type('vos:/somenode'))
        self.assertTrue(client.isdir('vos:/somenode'))

        mock_node.type = 'vos:DataNode'
        self.assertEquals('vos:DataNode', client._node_type('vos:/somenode'))
        self.assertTrue(client.isfile('vos:/somenode'))

        # through a link
        mock_node.type = 'vos:ContainerNode'
        mock_link_node = Mock(type='vos:LinkNode')
        mock_link_node.target = 'vos:/somefile'
        client.get_node = Mock(side_effect=[mock_link_node, mock_node,
                                            mock_link_node, mock_node])
        self.assertEquals('vos:ContainerNode',
                          client._node_type('vos:/somenode'))
        self.assertTrue(client.isdir('vos:/somenode'))

        # through an external link - not sure why the type is DataNode in
        # this case???
        mock_link_node.target = '/somefile'
        client.get_node = Mock(side_effect=[mock_link_node, mock_link_node])
        self.assertEquals('vos:DataNode', client._node_type('vos:/somenode'))
        self.assertTrue(client.isfile('vos:/somenode'))
 def __loaded_slidelayout(self, prs_slidemaster=None):
     """
     Return _SlideLayout instance loaded using mocks. *prs_slidemaster* is
     an already-loaded model-side _SlideMaster instance (or mock, as
     appropriate to calling test).
     """
     # partname for related slideMaster
     sldmaster_partname = '/ppt/slideMasters/slideMaster1.xml'
     # path to test slideLayout XML
     slidelayout_path = absjoin(test_file_dir, 'slideLayout1.xml')
     # model-side slideMaster part
     if prs_slidemaster is None:
         prs_slidemaster = Mock(spec=_SlideMaster)
     # a part dict containing the already-loaded model-side slideMaster
     loaded_part_dict = {sldmaster_partname: prs_slidemaster}
     # a slideMaster package part for rel target
     pkg_slidemaster_part = Mock(spec=pptx.packaging.Part)
     pkg_slidemaster_part.partname = sldmaster_partname
     # a package-side relationship from slideLayout to its slideMaster
     rel = Mock(name='pptx.packaging._Relationship')
     rel.rId = 'rId1'
     rel.reltype = RT_SLIDE_MASTER
     rel.target = pkg_slidemaster_part
     # the slideLayout package part to send to _load()
     pkg_slidelayout_part = Mock(spec=pptx.packaging.Part)
     pkg_slidelayout_part.relationships = [rel]
     with open(slidelayout_path, 'rb') as f:
         pkg_slidelayout_part.blob = f.read()
     # _load and return
     slidelayout = _SlideLayout()
     return slidelayout._load(pkg_slidelayout_part, loaded_part_dict)
Ejemplo n.º 4
0
 def test_remove_effect(self):
     effect = Mock()
     effect.target = self.unit
     self.unit.effects.append(effect)
     self.unit.remove_effect(effect)
     self.assertEquals(len(self.unit.effects), 0)
     self.assertTrue(effect.target is None)
    def test_sendEvent_should_use_kwargs_as_event_items(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = "broadcaster-target"
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(
            mock_broadcaster,
            "event-id",
            "event-data",
            tracking_id="tracking-id",
            target="target",
            state="foobar",
            bar="baz",
        )

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(
            call(
                "target",
                {
                    "payload": "event-data",
                    "type": "event",
                    "id": "event-id",
                    "tracking_id": "tracking-id",
                    "target": "target",
                    "state": "foobar",
                    "bar": "baz",
                },
            ),
            actual_call,
        )
Ejemplo n.º 6
0
    def test_should_create_process_protocol_with_tracking_id_if_given(self, mock_protocol, mock_reactor):
        mock_protocol.return_value = 'mock-protocol'
        mock_receiver = Mock(Receiver)
        mock_broadcaster = Mock()
        mock_receiver.states = {'foo': Mock()}
        mock_receiver.broadcaster = mock_broadcaster
        mock_receiver.get_target_directory.return_value = '/etc/yadtshell/targets/devabc123'

        mock_receiver.configuration = {'hostname': 'hostname',
                                       'python_command': '/usr/bin/python',
                                       'script_to_execute': '/usr/bin/yadtshell'}

        mock_event = Mock(Event)
        mock_event.target = 'devabc123'
        mock_event.command = 'yadtshell'
        mock_event.arguments = ['update', '--tracking-id=foo']

        Receiver.perform_request(mock_receiver, mock_event, Mock())

        expected_command_with_arguments = '/usr/bin/python /usr/bin/yadtshell update --tracking-id=foo'

        self.assertEqual(
            call(
                'hostname', mock_broadcaster, 'devabc123', expected_command_with_arguments,
                tracking_id='foo'), mock_protocol.call_args)
Ejemplo n.º 7
0
 def mock_args(self):
     args = Mock()
     args.sever_name = "test_server"
     args.backup_id = "test_backup_id"
     args.release = None
     args.status = None
     args.target = None
     yield args
Ejemplo n.º 8
0
    def test_build_rr_observation(self):
        reservation = Reservation(priority=None,
                                  duration=10,
                                  possible_windows_dict={})
        reservation.scheduled_start = 0
        reservation.scheduled_resource = '1m0a.doma.bpl'

        proposal = Proposal({
            'id': 'testPro',
            'tag': 'tagPro',
            'tac_priority': 39,
            'pi': 'me'
        })
        target = ICRSTarget({'name': 'test', 'ra': 23.3, 'dec': 22.2})

        request_group = RequestGroup(operator='single',
                                     requests=None,
                                     proposal=proposal,
                                     expires=None,
                                     rg_id=333333,
                                     is_staff=False,
                                     name=None,
                                     ipp_value=1.0,
                                     observation_type="RAPID_RESPONSE",
                                     submitter='')

        configuration = Mock()
        configuration.guiding_config = {'mode': 'ON', 'optional': True}
        configuration.type = 'EXPOSE'
        configuration.instrument_type = '1M0-FAKE-SCICAM'
        configuration.constraints = {}
        configuration.id = 13
        configuration.target = target

        request = Request(
            configurations=[configuration],
            windows=None,
            request_id=22223,
        )

        reservation.request = request
        reservation.request_group = request_group
        configdb_interface = Mock()
        configdb_interface.get_specific_instrument.return_value = 'xx03'
        configdb_interface.get_autoguider_for_instrument.return_value = 'xx04'
        received = build_observation(reservation, self.start,
                                     configdb_interface)

        assert_equal(received['request'], 22223)
        assert_equal(received['site'], 'bpl')
        assert_equal(received['enclosure'], 'doma')
        assert_equal(received['telescope'], '1m0a')
        assert_equal(received['configuration_statuses'][0]['configuration'],
                     13)
        assert_equal(received['configuration_statuses'][0]['instrument_name'],
                     'xx03')
        assert_equal(
            received['configuration_statuses'][0]['guide_camera_name'], 'xx04')
Ejemplo n.º 9
0
def default_args():
    args = Mock()
    args.conf_file = '.lamvery.yml'
    args.dry_run = True
    args.publish = True
    args.alias = None
    args.version = None
    args.target = None
    return args
Ejemplo n.º 10
0
def default_args():
    args = Mock()
    args.conf_file = '.lamvery.yml'
    args.dry_run = True
    args.publish = True
    args.alias = None
    args.version = None
    args.target = None
    return args
Ejemplo n.º 11
0
 def test_by_address_with_srv(self):
     with patch("dns.resolver.query") as query:
         answer = Mock()
         answer.target = "different.example.org."
         answer.port = 12345
         query.return_value = [answer]
         self.server = MinecraftServer.lookup("example.org")
         query.assert_called_once_with("_minecraft._tcp.example.org", "SRV")
     self.assertEqual(self.server.host, "different.example.org")
     self.assertEqual(self.server.port, 12345)
Ejemplo n.º 12
0
 def test_by_address_with_srv(self):
     with patch("dns.resolver.query") as query:
         answer = Mock()
         answer.target = "different.example.org."
         answer.port = 12345
         query.return_value = [answer]
         self.server = MinecraftServer.lookup("example.org")
         query.assert_called_once_with("_minecraft._tcp.example.org", "SRV")
     self.assertEqual(self.server.host, "different.example.org")
     self.assertEqual(self.server.port, 12345)
Ejemplo n.º 13
0
 def test_by_address_with_srv(self):
     with patch("dns.resolver.resolve") as resolve:
         answer = Mock()
         answer.target = "different.example.org."
         answer.port = 12345
         resolve.return_value = [answer]
         self.server = MinecraftServer.lookup("example.org")
         resolve.assert_called_once_with("_minecraft._tcp.example.org",
                                         "SRV")
     assert self.server.host == "different.example.org"
     assert self.server.port == 12345
Ejemplo n.º 14
0
def _learning_curve(learning_curve):
    X = np.array([[0, 1], [1, 0], [1, 1]] * 100, dtype=float)
    X[:, 1] += (np.random.random((300)) - 0.5)
    y = np.array([0, 0, 1] * 100)

    dataset = Mock()
    dataset.train_test_split.return_value = train_test_split(X, y)
    dataset.data = X
    dataset.target = y

    return learning_curve(dataset, LogisticRegression(), steps=5, verbose=1)
Ejemplo n.º 15
0
def _learning_curve(learning_curve):
    X = np.array([[0, 1], [1, 0], [1, 1]] * 100, dtype=float)
    X[:, 1] += np.random.random((300)) - 0.5
    y = np.array([0, 0, 1] * 100)

    dataset = Mock()
    dataset.train_test_split.return_value = train_test_split(X, y)
    dataset.data = X
    dataset.target = y

    return learning_curve(dataset, LogisticRegression(), steps=5, verbose=1)
    def test_should_vote_when_handling_request(self, uuid_fun):
        uuid_fun.return_value = "1234-5678"
        receiver = Mock(Receiver)
        receiver.broadcaster = Mock()
        receiver.states = {'foo': None}
        event = Mock()
        event.arguments = ['--tracking-id=foo']
        event.target = 'target'
        Receiver.handle_request(receiver, event)

        receiver.broadcaster._sendEvent.assert_called_with(
            'vote', data='1234-5678', tracking_id='foo', target='target')
Ejemplo n.º 17
0
def mock_context():
    @contextlib.contextmanager
    def target(*args):
        ctx.push(*args)
        yield
        ctx.pop()

    ctx = Mock(name='context', spec=['push', 'pop', 'peek'])
    ctx.formatter = JSONFormatter()
    ctx.build_resource_uri = lambda resource: 'uri://' + resource.resource_path
    ctx.target = target
    return ctx
Ejemplo n.º 18
0
 def test_get_info_list(self):
     # list tuples of a LinkNode
     mock_node = MagicMock(type='vos:DataNode')
     mock_node.return_value = mock_node
     mock_node.name = 'testnode'
     mock_node.get_info.return_value = {'name': 'aa'}
     mock_link_node = Mock(type='vos:LinkNode')
     mock_link_node.target = 'vos:/somefile'
     client = Client()
     client.get_node = MagicMock(side_effect=[mock_link_node, mock_node])
     self.assertEquals([mock_node],
                       client.get_children_info('vos:/somenode'))
Ejemplo n.º 19
0
 def test_get_info_list(self):
     # list tuples of a LinkNode
     mock_node = MagicMock(type='vos:DataNode')
     mock_node.return_value = mock_node
     mock_node.name = 'testnode'
     mock_node.get_info.return_value = {'name': 'aa'}
     mock_link_node = Mock(type='vos:LinkNode')
     mock_link_node.target = 'vos:/somefile'
     client = Client()
     client.get_node = MagicMock(side_effect=[mock_link_node, mock_node])
     self.assertEquals([mock_node],
                       client.get_children_info('vos:/somenode'))
Ejemplo n.º 20
0
def test_grid_search():
    from ..grid_search import grid_search

    dataset = Mock()
    dataset.data = np.array([[1, 2, 3], [3, 3, 3]] * 20)
    dataset.target = np.array([0, 1] * 20)
    pipeline = LogisticRegression()
    parameters = dict(C=[1.0, 3.0])

    result = grid_search(dataset, pipeline, parameters)
    assert isinstance(result, GridSearchCV)
    assert hasattr(result, 'best_estimator_')
    assert hasattr(result, 'best_score_')
Ejemplo n.º 21
0
def test_search(grid_search, Dataset, main):
    from ..learn import search

    dataset = Mock()
    dataset.data = np.array([[1], [2]])
    dataset.target = np.array([1, 2])
    Dataset.return_value = dataset
    main.arguments = {'<model_name>': 'lr'}
    result = search()
    assert result is grid_search.return_value
    assert grid_search.call_args[0][0] is dataset
    assert isinstance(grid_search.call_args[0][1], Pipeline)
    assert isinstance(grid_search.call_args[0][2], dict)
Ejemplo n.º 22
0
def test_search(grid_search, Dataset, main):
    from ..learn import search

    dataset = Mock()
    dataset.data = np.array([[1], [2]])
    dataset.target = np.array([1, 2])
    Dataset.return_value = dataset
    main.arguments = {'<model_name>': 'lr'}
    result = search()
    assert result is grid_search.return_value
    assert grid_search.call_args[0][0] is dataset
    assert isinstance(grid_search.call_args[0][1], Pipeline)
    assert isinstance(grid_search.call_args[0][2], dict)
Ejemplo n.º 23
0
def create_mock_formulabase():
    """ Generate a formulabase object that does nothing, and returns no errors """
    mock_formulabase = Mock(spec=FormulaBase)
    mock_formulabase.side_effect = lambda *args, **kw: mock_formulabase
    mock_formulabase.should_run.return_value = True
    mock_formulabase.resolve.return_value = None
    mock_formulabase.prompt.return_value = None
    mock_formulabase.sync.return_value = None
    mock_formulabase.target = True
    for phase in PHASE.values:
        setattr(mock_formulabase, phase.name, Mock(return_value=None))

    return mock_formulabase
    def test_should_vote_when_handling_request(self, uuid_fun):
        uuid_fun.return_value = "1234-5678"
        receiver = Mock(Receiver)
        receiver.broadcaster = Mock()
        receiver.states = {'foo': None}
        event = Mock()
        event.arguments = ['--tracking-id=foo']
        event.target = 'target'
        Receiver.handle_request(receiver, event)

        receiver.broadcaster._sendEvent.assert_called_with('vote',
                                                           data='1234-5678',
                                                           tracking_id='foo',
                                                           target='target')
Ejemplo n.º 25
0
    def test_resolve_negative(self):
        # given
        argument1_name = 'var1'
        argument2_name = 'var2'

        relationship_target_node_mock = Mock()
        relationship_target_instance_mock = Mock()
        relationship_target_instance_mock.id = '6'

        relationship_source_node_mock = Mock()
        relationship_source_instance_mock = Mock()
        relationship_ctx = MockRelationshipContext(
            target=MockRelationshipSubjectContext(
                node=relationship_target_node_mock,
                instance=relationship_target_instance_mock))

        relationship_source_instance_mock.relationships = [relationship_ctx]

        rule1 = Mock()
        rule1.argument_name = argument1_name
        rule1_evaluate_value = 'value1'
        rule1_evaluate_mock = Mock(
            side_effect=lambda ctx, node, instance:
            (True, rule1_evaluate_value)
            if (node == relationship_source_node_mock and instance ==
                relationship_source_instance_mock) else (False, None))
        rule1.evaluate = rule1_evaluate_mock

        rule2 = Mock()
        rule2.argument_name = argument2_name
        rule2_evaluate_mock = Mock(return_value=(False, None))
        rule2.evaluate = rule2_evaluate_mock

        rules = [rule1, rule2]

        resolver = RelationshipInputArgumentResolver(rules)

        ctx_mock = Mock()
        ctx_mock.target = MockRelationshipSubjectContext(
            node=relationship_target_node_mock,
            instance=relationship_target_instance_mock)
        ctx_mock.source = MockRelationshipSubjectContext(
            node=relationship_source_node_mock,
            instance=relationship_source_instance_mock)

        # then
        with self.assertRaises(InputArgumentResolvingError):
            # when
            resolver.resolve(ctx_mock)
Ejemplo n.º 26
0
    def test_should_publish_finished_event(self):
        mock_protocol = Mock(ProcessProtocol)
        mock_broadcaster = Mock()
        mock_protocol.broadcaster = mock_broadcaster
        mock_protocol.hostname = 'hostname'
        mock_protocol.target = 'dev123'
        mock_protocol.readable_command = '/usr/bin/python abc'
        mock_protocol.tracking_id = 'tracking-id'
        mock_protocol.error_buffer = Mock()

        ProcessProtocol.publish_finished(mock_protocol)

        self.assertEquals(call('dev123', '/usr/bin/python abc', 'finished',
                          '(hostname) target[dev123] request finished: "/usr/bin/python abc" succeeded.', tracking_id='tracking-id'), mock_broadcaster.publish_cmd_for_target.call_args)
        self.assertEqual(METRICS['commands_succeeded.dev123'], 1)
    def test_sendEvent_should_publish_expected_event_on_default_target(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = 'broadcaster-target'
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(
            mock_broadcaster, 'event-id', 'event-data', tracking_id='tracking-id')

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(call('broadcaster-target', {'payload': 'event-data',
                                                     'type': 'event',
                                                     'id': 'event-id',
                                                     'tracking_id': 'tracking-id',
                                                     'target': 'broadcaster-target'}
                              ), actual_call)
Ejemplo n.º 28
0
    def test_should_publish_event_about_failed_command_on_target(self, mock_log):
        mock_receiver = Mock(Receiver)
        mock_broadcaster = Mock()
        mock_receiver.broadcaster = mock_broadcaster

        mock_event = Mock(Event)
        mock_event.target = 'devabc123'
        mock_event.tracking_id = 'any-tracking-id'
        mock_event.command = 'yadtshell'
        mock_event.arguments = ['update']

        Receiver.publish_failed(mock_receiver, mock_event, 'It failed!')

        mock_broadcaster.publish_cmd_for_target.assert_called_with(
            'devabc123',
            'yadtshell',
            'failed',
            'It failed!',
            tracking_id='any-tracking-id')
        self.assertEqual(yadtreceiver.METRICS['commands_failed.devabc123'], 1)
Ejemplo n.º 29
0
    def test_should_broadcast_error_when_spawning_fails(self, mock_protocol, mock_reactor):
        mock_protocol.side_effect = RuntimeError('Booom!')
        mock_receiver = Mock(Receiver)
        mock_broadcaster = Mock()
        mock_receiver.broadcaster = mock_broadcaster
        mock_receiver.get_target_directory.return_value = '/etc/yadtshell/targets/devabc123'
        mock_receiver.states = {None: Mock()}

        mock_receiver.configuration = {'hostname': 'hostname',
                                       'python_command': '/usr/bin/python',
                                       'script_to_execute': '/usr/bin/yadtshell'}

        mock_event = Mock(Event)
        mock_event.target = 'devabc123'
        mock_event.command = 'yadtshell'
        mock_event.arguments = ['update']

        Receiver.perform_request(mock_receiver, mock_event, Mock())

        mock_receiver.publish_failed.assert_called_with(mock_event, "<type 'exceptions.RuntimeError'> : Booom!")
Ejemplo n.º 30
0
    def test_should_publish_failed_event_with_stderr_from_process(self, mock_log):
        mock_protocol = Mock(ProcessProtocol)
        mock_broadcaster = Mock()
        mock_protocol.broadcaster = mock_broadcaster
        mock_protocol.hostname = 'hostname'
        mock_protocol.target = 'dev123'
        mock_protocol.readable_command = '/usr/bin/python abc'
        mock_protocol.tracking_id = 'tracking_id'
        mock_protocol.error_buffer = StringIO(
            'Someone has shut down the internet.')

        ProcessProtocol.publish_failed(mock_protocol, 123)

        self.assertEquals(call('dev123',
                               '/usr/bin/python abc',
                               'failed',
                               message='Someone has shut down the internet.',
                               tracking_id='tracking_id'),
                          mock_broadcaster.publish_cmd_for_target.call_args)
        self.assertEqual(METRICS['commands_failed.dev123'], 1)
Ejemplo n.º 31
0
    def test_should_publish_finished_event(self):
        mock_protocol = Mock(ProcessProtocol)
        mock_broadcaster = Mock()
        mock_protocol.broadcaster = mock_broadcaster
        mock_protocol.hostname = 'hostname'
        mock_protocol.target = 'dev123'
        mock_protocol.readable_command = '/usr/bin/python abc'
        mock_protocol.tracking_id = 'tracking-id'
        mock_protocol.error_buffer = Mock()

        ProcessProtocol.publish_finished(mock_protocol)

        self.assertEquals(
            call(
                'dev123',
                '/usr/bin/python abc',
                'finished',
                '(hostname) target[dev123] request finished: "/usr/bin/python abc" succeeded.',
                tracking_id='tracking-id'),
            mock_broadcaster.publish_cmd_for_target.call_args)
        self.assertEqual(METRICS['commands_succeeded.dev123'], 1)
Ejemplo n.º 32
0
def create_mock_formulabase():
    """ Generate a formulabase object that does nothing, and returns no errors """
    mock_formulabase = Mock(spec=FormulaBase)
    mock_formulabase.side_effect = lambda *args, **kw: mock_formulabase
    mock_formulabase.should_run.return_value = True
    mock_formulabase.resolve.return_value = None
    mock_formulabase.prompt.return_value = None
    manifest = Manifest(configparser.RawConfigParser())
    mock_formulabase.target = Mock(spec=FeatureConfig)
    mock_formulabase.target.has.return_value = False
    for phase in PHASE.values:
        setattr(mock_formulabase, phase.name, Mock(return_value=None))

    mock_formulabase.logger = Mock()
    mock_formulabase.directory = Mock()
    mock_formulabase.directory.install_directory.return_value = ""
    mock_formulabase.feature_name = ""
    # mock_formulabase.sync = Mock()
    # mock_formulabase.sync.return_value = None

    return mock_formulabase
Ejemplo n.º 33
0
    def test_should_publish_event_about_started_command_on_target(self, mock_log):
        mock_receiver = Mock(Receiver)
        mock_receiver.configuration = {'hostname': 'hostname'}
        mock_broadcaster = Mock()
        mock_receiver.broadcaster = mock_broadcaster

        mock_event = Mock(Event)
        mock_event.tracking_id = 'any-tracking-id'
        mock_event.target = 'devabc123'
        mock_event.command = 'yadtshell'
        mock_event.arguments = ['update']

        Receiver.publish_start(mock_receiver, mock_event)

        mock_broadcaster.publish_cmd_for_target.assert_called_with(
            'devabc123',
            'yadtshell',
            'started',
            '(hostname) target[devabc123] request: command="yadtshell", arguments=[\'update\']',
            tracking_id='any-tracking-id')
        self.assertEqual(yadtreceiver.METRICS['commands_started.devabc123'], 1)
    def test_sendEvent_should_publish_expected_event_on_default_target(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = "broadcaster-target"
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(mock_broadcaster, "event-id", "event-data", tracking_id="tracking-id")

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(
            call(
                "broadcaster-target",
                {
                    "payload": "event-data",
                    "type": "event",
                    "id": "event-id",
                    "tracking_id": "tracking-id",
                    "target": "broadcaster-target",
                },
            ),
            actual_call,
        )
Ejemplo n.º 35
0
    def test_should_publish_failed_event_with_stderr_from_process(
            self, mock_log):
        mock_protocol = Mock(ProcessProtocol)
        mock_broadcaster = Mock()
        mock_protocol.broadcaster = mock_broadcaster
        mock_protocol.hostname = 'hostname'
        mock_protocol.target = 'dev123'
        mock_protocol.readable_command = '/usr/bin/python abc'
        mock_protocol.tracking_id = 'tracking_id'
        mock_protocol.error_buffer = StringIO(
            'Someone has shut down the internet.')

        ProcessProtocol.publish_failed(mock_protocol, 123)

        self.assertEquals(
            call('dev123',
                 '/usr/bin/python abc',
                 'failed',
                 message='Someone has shut down the internet.',
                 tracking_id='tracking_id'),
            mock_broadcaster.publish_cmd_for_target.call_args)
        self.assertEqual(METRICS['commands_failed.dev123'], 1)
Ejemplo n.º 36
0
    def test_should_spawn_new_process_on_reactor_even_when_not_registered(self, _, mock_protocol, mock_reactor):
        mock_protocol.return_value = 'mock-protocol'
        mock_receiver = Mock(Receiver)
        mock_broadcaster = Mock()
        mock_receiver.broadcaster = mock_broadcaster
        mock_receiver.get_target_directory.return_value = '/etc/yadtshell/targets/devabc123'
        mock_receiver.states = {}

        mock_receiver.configuration = {'hostname': 'hostname',
                                       'python_command': '/usr/bin/python',
                                       'script_to_execute': '/usr/bin/yadtshell'}

        mock_event = Mock(Event)
        mock_event.target = 'devabc123'
        mock_event.command = 'yadtshell'
        mock_event.arguments = ['update']

        Receiver.perform_request(mock_receiver, mock_event, Mock())

        self.assertEquals(call('hostname', mock_broadcaster, 'devabc123',
                               '/usr/bin/python /usr/bin/yadtshell update', tracking_id=None), mock_protocol.call_args)
        self.assertEquals(call('mock-protocol', '/usr/bin/python', [
                          '/usr/bin/python', '/usr/bin/yadtshell', 'update'], path='/etc/yadtshell/targets/devabc123', env={}), mock_reactor.spawnProcess.call_args)
    def test_sendEvent_should_use_kwargs_as_event_items(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = 'broadcaster-target'
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(mock_broadcaster,
                                   'event-id',
                                   'event-data',
                                   tracking_id='tracking-id',
                                   target='target',
                                   state='foobar',
                                   bar='baz')

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(call('target', {'payload': 'event-data',
                                         'type': 'event',
                                         'id': 'event-id',
                                         'tracking_id': 'tracking-id',
                                         'target': 'target',
                                         'state': 'foobar',
                                         'bar': 'baz'}
                              ), actual_call)
 def test__load_sets_slidelayout(self):
     """_Slide._load() sets slidelayout"""
     # setup ------------------------
     path = os.path.join(thisdir, 'test_files/slide1.xml')
     slidelayout = Mock(name='slideLayout')
     slidelayout.partname = '/ppt/slideLayouts/slideLayout1.xml'
     rel = Mock(name='pptx.packaging._Relationship')
     rel.rId = 'rId1'
     rel.reltype = RT_SLIDE_LAYOUT
     rel.target = slidelayout
     pkgpart = Mock(name='pptx.packaging.Part')
     with open(path, 'rb') as f:
         pkgpart.blob = f.read()
     pkgpart.relationships = [rel]
     part_dict = {slidelayout.partname: slidelayout}
     slide = self.sld._load(pkgpart, part_dict)
     # exercise ---------------------
     retval = slide.slidelayout
     # verify -----------------------
     expected = slidelayout
     actual = retval
     msg = "expected: %s, got %s" % (expected, actual)
     self.assertEqual(expected, actual, msg)
Ejemplo n.º 39
0
    def test_resolve_positive(self):
        # given
        argument1_name = 'var1'
        argument2_name = 'var2'

        relationship_target_node_mock = Mock()
        relationship_target_instance_mock = Mock()
        relationship_target_instance_mock.id = '5'

        relationship_source_node_mock = Mock()
        relationship_source_instance_mock = Mock()
        relationship_ctx = MockRelationshipContext(
            target=MockRelationshipSubjectContext(
                node=relationship_target_node_mock,
                instance=relationship_target_instance_mock))

        relationship_source_instance_mock.relationships = [relationship_ctx]

        rule1 = Mock()
        rule1.argument_name = argument1_name
        rule1_evaluate_value = 'value1'
        rule1_evaluate_mock = Mock(
            side_effect=lambda ctx, node, instance:
            (True, rule1_evaluate_value)
            if (node == relationship_source_node_mock and instance ==
                relationship_source_instance_mock) else (False, None))
        rule1.evaluate = rule1_evaluate_mock

        rule2 = Mock()
        rule2.argument_name = argument2_name
        rule2_evaluate_value = 'value2'
        rule2_evaluate_mock = Mock(
            side_effect=lambda ctx, node, instance:
            (True, rule2_evaluate_value)
            if (node == relationship_target_node_mock and instance ==
                relationship_target_instance_mock) else (False, None))
        rule2.evaluate = rule2_evaluate_mock

        rules = [rule1, rule2]

        resolver = RelationshipInputArgumentResolver(rules)

        ctx_mock = Mock()
        ctx_mock.target = MockRelationshipSubjectContext(
            node=relationship_target_node_mock,
            instance=relationship_target_instance_mock)
        ctx_mock.source = MockRelationshipSubjectContext(
            node=relationship_source_node_mock,
            instance=relationship_source_instance_mock)
        # when
        result = resolver.resolve(ctx_mock)

        # then
        self.assertEquals(
            result, {
                argument1_name: rule1_evaluate_value,
                argument2_name: rule2_evaluate_value
            })

        rule1_evaluate_mock_expected_calls = [
            call(relationship_ctx, relationship_target_node_mock,
                 relationship_target_instance_mock),
            call(relationship_ctx, relationship_source_node_mock,
                 relationship_source_instance_mock)
        ]

        rule1_evaluate_mock.assert_has_calls(
            rule1_evaluate_mock_expected_calls)

        rule2_evaluate_mock_expected_calls = [
            call(relationship_ctx, relationship_target_node_mock,
                 relationship_target_instance_mock)
        ]

        rule2_evaluate_mock.assert_has_calls(
            rule2_evaluate_mock_expected_calls)