Пример #1
0
class TestBase(test_utils.TestCase):

    def setUp(self):
        self.request = test_utils.RequestFactory().get('/')
        self.resource = Resource()

    @mock.patch('solitude.base._log_cef')
    def test_cef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request, api_name='foo',
                                   resource_name='bar')
        args = log_cef.call_args[0]
        eq_(args[0], 'foo:bar')
        kw = log_cef.call_args[1]
        eq_(kw['msg'], 'foo:bar')
        eq_(kw['config']['cef.product'], 'Solitude')

    @mock.patch('solitude.base.log_cef')
    def test_unknowncef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request)

        eq_(log_cef.call_args[0][0], 'unknown:unknown')
Пример #2
0
class TestError(test_utils.TestCase):

    def setUp(self):
        self.request = test_utils.RequestFactory().get('/')
        self.resource = Resource()

    def test_error(self):
        try:
            1/0
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data['error_code'], 'ZeroDivisionError')
        eq_(data['error_message'], 'integer division or modulo by zero')

    def test_paypal_error(self):
        try:
            raise PaypalError(id=520003, message='wat?')
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data['error_code'], '520003')
        eq_(data['error_message'], 'wat?')
Пример #3
0
class TestError(test_utils.TestCase):
    def setUp(self):
        self.request = test_utils.RequestFactory().get('/')
        self.resource = Resource()

    def test_error(self):
        res = None
        try:
            1 / 0
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data['error_code'], 'ZeroDivisionError')
        eq_(data['error_message'], 'integer division or modulo by zero')

    def test_paypal_error(self):
        res = None
        try:
            raise PaypalError(id=520003, message='wat?')
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data['error_code'], '520003')
        eq_(data['error_message'], 'wat?')
Пример #4
0
class TestError(test_utils.TestCase):
    def setUp(self):
        self.request = test_utils.RequestFactory().get("/")
        self.resource = Resource()

    def test_error(self):
        res = None
        try:
            1 / 0
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data["error_code"], "ZeroDivisionError")
        eq_(data["error_message"], "integer division or modulo by zero")

    def test_paypal_error(self):
        res = None
        try:
            raise PaypalError(id=520003, message="wat?")
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data["error_code"], "520003")
        eq_(data["error_message"], "wat?")
Пример #5
0
class TestBase(test.TestCase):

    def setUp(self):
        self.request = test.RequestFactory().get(
            '/',
            CONTENT_TYPE='application/json')
        self.resource = Resource()

    @mock.patch('solitude.base._log_cef')
    def test_cef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request, api_name='foo',
                                   resource_name='bar')
        args = log_cef.call_args[0]
        eq_(args[0], 'foo:bar')
        kw = log_cef.call_args[1]
        eq_(kw['msg'], 'foo:bar')
        eq_(kw['config']['cef.product'], 'Solitude')

    @mock.patch('solitude.base.log_cef')
    def test_unknowncef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request)

        eq_(log_cef.call_args[0][0], 'unknown:unknown')

    def test_build_filters_fails(self):
        with self.assertRaises(InvalidFilterError):
            self.resource.build_filters({'foo': 'bar'})

    def test_build_filters_passes(self):
        check = mock.Mock()
        check.return_value = ['foo']
        self.resource.check_filtering = check
        self.resource.fields = ['foo']
        eq_(self.resource.build_filters({'foo': 'bar'}),
            {'foo__exact': 'bar'})

    def test_deserialize(self):
        self.request._body = ''
        eq_(self.resource.deserialize_body(self.request), {})
        self.request._body = json.dumps({'foo': 'bar'})
        eq_(self.resource.deserialize_body(self.request)['foo'], 'bar')

    def test_etag_func(self):
        assert etag_func(None, 'foo') is None
        etag_value = 123456789
        data = mock.Mock()
        data.obj.etag = etag_value
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
        data = {}
        data['objects'] = []
        eq_(etag_func(None, data), None)
        data = {}
        data['objects'] = [mock.Mock(etag=etag_value)]
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
Пример #6
0
class TestBase(test_utils.TestCase):
    def setUp(self):
        self.request = test_utils.RequestFactory().get(
            '/', CONTENT_TYPE='application/json')
        self.resource = Resource()

    @mock.patch('solitude.base._log_cef')
    def test_cef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST',
                                   self.request,
                                   api_name='foo',
                                   resource_name='bar')
        args = log_cef.call_args[0]
        eq_(args[0], 'foo:bar')
        kw = log_cef.call_args[1]
        eq_(kw['msg'], 'foo:bar')
        eq_(kw['config']['cef.product'], 'Solitude')

    @mock.patch('solitude.base.log_cef')
    def test_unknowncef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request)

        eq_(log_cef.call_args[0][0], 'unknown:unknown')

    def test_build_filters_fails(self):
        with self.assertRaises(InvalidFilterError):
            self.resource.build_filters({'foo': 'bar'})

    def test_build_filters_passes(self):
        check = mock.Mock()
        check.return_value = ['foo']
        self.resource.check_filtering = check
        self.resource.fields = ['foo']
        eq_(self.resource.build_filters({'foo': 'bar'}), {'foo__exact': 'bar'})

    def test_deserialize(self):
        self.request._body = ''
        eq_(self.resource.deserialize_body(self.request), {})
        self.request._body = json.dumps({'foo': 'bar'})
        eq_(self.resource.deserialize_body(self.request)['foo'], 'bar')

    def test_etag_func(self):
        assert etag_func(None, 'foo') is None
        etag_value = 123456789
        data = mock.Mock()
        data.obj.etag = etag_value
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
        data = {}
        data['objects'] = []
        eq_(etag_func(None, data), None)
        data = {}
        data['objects'] = [mock.Mock(etag=etag_value)]
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
Пример #7
0
class TestBase(test_utils.TestCase):
    def setUp(self):
        self.request = test_utils.RequestFactory().get("/", CONTENT_TYPE="application/json")
        self.resource = Resource()

    @mock.patch("solitude.base._log_cef")
    def test_cef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch("POST", self.request, api_name="foo", resource_name="bar")
        args = log_cef.call_args[0]
        eq_(args[0], "foo:bar")
        kw = log_cef.call_args[1]
        eq_(kw["msg"], "foo:bar")
        eq_(kw["config"]["cef.product"], "Solitude")

    @mock.patch("solitude.base.log_cef")
    def test_unknowncef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch("POST", self.request)

        eq_(log_cef.call_args[0][0], "unknown:unknown")

    def test_build_filters_fails(self):
        with self.assertRaises(InvalidFilterError):
            self.resource.build_filters({"foo": "bar"})

    def test_build_filters_passes(self):
        check = mock.Mock()
        check.return_value = ["foo"]
        self.resource.check_filtering = check
        self.resource.fields = ["foo"]
        eq_(self.resource.build_filters({"foo": "bar"}), {"foo__exact": "bar"})

    def test_deserialize(self):
        self.request._body = ""
        eq_(self.resource.deserialize_body(self.request), {})
        self.request._body = json.dumps({"foo": "bar"})
        eq_(self.resource.deserialize_body(self.request)["foo"], "bar")

    def test_etag_func(self):
        assert etag_func(None, "foo") is None
        etag_value = 123456789
        data = mock.Mock()
        data.obj.etag = etag_value
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
        data = {}
        data["objects"] = []
        eq_(etag_func(None, data), None)
        data = {}
        data["objects"] = [mock.Mock(etag=etag_value)]
        eq_(etag_func(None, data), md5(str(etag_value)).hexdigest())
Пример #8
0
class TestBase(test_utils.TestCase):

    def setUp(self):
        self.request = test_utils.RequestFactory().get('/',
            CONTENT_TYPE='application/json')
        self.resource = Resource()
        self.resource._meta.serializer = JWTSerializer()

    @mock.patch('solitude.base._log_cef')
    def test_cef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request, api_name='foo',
                                   resource_name='bar')
        args = log_cef.call_args[0]
        eq_(args[0], 'foo:bar')
        kw = log_cef.call_args[1]
        eq_(kw['msg'], 'foo:bar')
        eq_(kw['config']['cef.product'], 'Solitude')

    @mock.patch('solitude.base.log_cef')
    def test_unknowncef(self, log_cef):
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request)

        eq_(log_cef.call_args[0][0], 'unknown:unknown')

    def test_build_filters_fails(self):
        with self.assertRaises(InvalidFilterError):
            self.resource.build_filters({'foo': 'bar'})

    def test_build_filters_passes(self):
        check = mock.Mock()
        check.return_value = ['foo']
        self.resource.check_filtering = check
        self.resource.fields = ['foo']
        eq_(self.resource.build_filters({'foo': 'bar'}),
            {'foo__exact': 'bar'})

    def test_deserialize(self):
        self.request._body = ''
        eq_(self.resource.deserialize_body(self.request), {})
        self.request._body = json.dumps({'foo': 'bar'})
        eq_(self.resource.deserialize_body(self.request)['foo'], 'bar')
Пример #9
0
class TestMetlogLogging(test_utils.TestCase):
    """
    Test that the solitude settings routes all logging.
    """
    def setUp(self):
        self.request = test_utils.RequestFactory().get('/')
        self.resource = Resource()
        settings.METLOG.sender.msgs.clear()

    @mock.patch('metlog.client.MetlogClient.metlog')
    def test_cef(self, mock_metlog):
        """
        Weak check to make sure that the cef message was formatted
        properly.
        """
        self.resource.method_check = mock.Mock()
        with self.assertRaises(ImmediateHttpResponse):
            self.resource.dispatch('POST', self.request, api_name='foo',
                                   resource_name='bar')

        args = mock_metlog.call_args_list[0]

        payload = args[1]['payload']

        assert 'msg=foo:bar' in payload
        assert 'Solitude' in payload

    @mock.patch('metlog.client.MetlogClient.metlog')
    @mock.patch.object(settings, 'STATSD_CLIENT',
                       'django_statsd.clients.moz_metlog')
    def test_statsd(self, mock_metlog):
        """
        Weak test to see we've got statsd messages passed into metlog.
        """
        statsd_client().incr('solitude.test.counter')
        args = mock_metlog.call_args
        eq_(args[0], ('counter', None, None, None, '1',
            {'rate': 1, 'name': 'solitude.test.counter'}))
Пример #10
0
class TestError(test.TestCase):

    def setUp(self):
        self.request = test.RequestFactory().get('/')
        self.resource = Resource()

    def test_error(self):
        res = None
        try:
            1 / 0
        except Exception as error:
            res = self.resource._handle_500(self.request, error)

        data = json.loads(res.content)
        eq_(data['error_code'], 'ZeroDivisionError')
        eq_(data['error_message'], 'integer division or modulo by zero')
Пример #11
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get('/',
         CONTENT_TYPE='application/json')
     self.resource = Resource()
     self.resource._meta.serializer = JWTSerializer()
Пример #12
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get('/')
     self.resource = Resource()
Пример #13
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get('/',
         CONTENT_TYPE='application/json')
     self.resource = Resource()
Пример #14
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get('/')
     self.resource = Resource()
     settings.METLOG.sender.msgs.clear()
Пример #15
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get(
         '/', CONTENT_TYPE='application/json')
     self.resource = Resource()
Пример #16
0
 def setUp(self):
     self.request = test_utils.RequestFactory().get('/')
     self.resource = Resource()