Skip to content
This repository was archived by the owner on Dec 17, 2024. It is now read-only.
This repository was archived by the owner on Dec 17, 2024. It is now read-only.

WrongStatus object has no attribute 'code' #3

@slamora

Description

@slamora

Error 500 when requesting unnamed tags and tag provider was missconfigured.

Steps to reproduce the issue

  1. Configure devicehub-teal to use an invalid tag_provider (e.g. http://example.org)
devicehub_testing=# SELECT id, tag_provider FROM common.inventory;
    id     |          tag_provider          
-----------+--------------------------------
 testdb00  | http://example.com

2A. Go to DeviceHubClient > Tags > Create unnamed empty tags > choose a number (e.g. 2)
2B. Perform following request to devicehub-teal POST https://api.testing.usody.com/usodybeta/tags/?num=1

3A. On DeviceHubClient you will get the following error:

{"code":500,"message":"'WrongStatus' object has no attribute 'code'","type":"AttributeError"}

3B. On devicehub-teal:

ERROR in app: Exception on /tags/ [POST]
Traceback (most recent call last):
  File "/venv/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/venv/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/venv/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/venv/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/venv/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/venv/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/venv/lib/python3.7/site-packages/flask/views.py", line 88, in view
    return self.dispatch_request(*args, **kwargs)
  File "/venv/lib/python3.7/site-packages/teal/resource.py", line 189, in dispatch_request
    return super().dispatch_request(*args, **kwargs)
  File "/venv/lib/python3.7/site-packages/flask/views.py", line 158, in dispatch_request
    return meth(*args, **kwargs)
  File "/venv/lib/python3.7/site-packages/teal/auth.py", line 44, in decorated
    return f(*args, **kwargs)
  File "/devicehub/ereuse_devicehub/resources/tag/view.py", line 19, in post
    res = self._create_many_regular_tags(num)
  File "/devicehub/ereuse_devicehub/resources/tag/view.py", line 36, in _create_many_regular_tags
    tags_id, _ = g.tag_provider.post('/', {}, query=[('num', num)])
  File "/venv/lib/python3.7/site-packages/ereuse_utils/session.py", line 152, in post
    token=token, **kwargs)
  File "/venv/lib/python3.7/site-packages/requests/sessions.py", line 559, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/venv/lib/python3.7/site-packages/ereuse_utils/session.py", line 229, in request
    .format(url, response.status_code, _status))
ereuse_utils.session.WrongStatus: Req to /?num=1 failed bc the status is 200 but it should have been 201

Expected behaviour

devicehub-teal error should be properly propagated to DeviceHubClient (e.g. WrongStatus expected 201 but received 200)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions