Test Failed
Push — master ( e380d0...f5671d )
by W
02:58
created

st2tests/st2tests/mocks/action.py (2 issues)

1
# Licensed to the StackStorm, Inc ('StackStorm') under one or more
2
# contributor license agreements.  See the NOTICE file distributed with
3
# this work for additional information regarding copyright ownership.
4
# The ASF licenses this file to You under the Apache License, Version 2.0
5
# (the "License"); you may not use this file except in compliance with
6
# the License.  You may obtain a copy of the License at
7
#
8
#     http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15
16
"""
17
Mock classes for use in pack testing.
18
"""
19
20
from __future__ import absolute_import
21
from logging import RootLogger
22
23
from mock import Mock
24
25
from python_runner.python_action_wrapper import ActionService
26
from st2tests.mocks.datastore import MockDatastoreService
27
28
__all__ = [
29
    'MockActionWrapper',
30
    'MockActionService'
31
]
32
33
34
class MockActionWrapper(object):
35
    def __init__(self, pack, class_name):
36
        self._pack = pack
37
        self._class_name = class_name
38
39
40
class MockActionService(ActionService):
41
    """
42
    Mock ActionService for use in testing.
43
    """
44
45
    def __init__(self, action_wrapper):
46
        self._action_wrapper = action_wrapper
47
48
        # Holds a mock logger instance
49
        # We use a Mock class so use can assert logger was called with particular arguments
50
        self._logger = Mock(spec=RootLogger)
51
52
        self._datastore_service = MockDatastoreService(logger=self._logger,
53
                                                       pack_name=self._action_wrapper._pack,
0 ignored issues
show
Coding Style Best Practice introduced by
It seems like _pack was declared protected and should not be accessed from this context.

Prefixing a member variable _ is usually regarded as the equivalent of declaring it with protected visibility that exists in other languages. Consequentially, such a member should only be accessed from the same class or a child class:

class MyParent:
    def __init__(self):
        self._x = 1;
        self.y = 2;

class MyChild(MyParent):
    def some_method(self):
        return self._x    # Ok, since accessed from a child class

class AnotherClass:
    def some_method(self, instance_of_my_child):
        return instance_of_my_child._x   # Would be flagged as AnotherClass is not
                                         # a child class of MyParent
Loading history...
54
                                                       class_name=self._action_wrapper._class_name)
0 ignored issues
show
Coding Style Best Practice introduced by
It seems like _class_name was declared protected and should not be accessed from this context.

Prefixing a member variable _ is usually regarded as the equivalent of declaring it with protected visibility that exists in other languages. Consequentially, such a member should only be accessed from the same class or a child class:

class MyParent:
    def __init__(self):
        self._x = 1;
        self.y = 2;

class MyChild(MyParent):
    def some_method(self):
        return self._x    # Ok, since accessed from a child class

class AnotherClass:
    def some_method(self, instance_of_my_child):
        return instance_of_my_child._x   # Would be flagged as AnotherClass is not
                                         # a child class of MyParent
Loading history...
55
56
    @property
57
    def datastore_service(self):
58
        return self._datastore_service
59