4634: AvatarService requires get_etag_data

Misery

What version of Djblets are you using?

1.0.2 (RB 3.0.2)

Which module(s) have the problem?

AvatarService

What steps will reproduce the problem?

  1. Enable my CustomAvatarService (https://github.com/misery/CustomUrlAvatar - without last commit)
  2. Go to http://localhost/dashboard/?view=outgoing
  3. Mouse hover over an entry of owner/submitter column
  4. RB prints following stacktrace

What is the expected output? What do you see instead?

Expected:
Show the avatar or let reviewboard print missing REQUIRED methods immediately instead of "stacktrace on random sites".

https://www.reviewboard.org/docs/djblets/1.0/coderef/python/djblets.avatars.services.base/

A service that provides avatar support.

At the very least, subclasses must set the avatar_service_id and name attributes, as well as override the get_avatar_urls() method.

"get_etag_data" should be mentioned if required.

What version of Python and Django?

python 2.7.14
django 1.6.11.6

Please provide any additional information below.

2018-01-18 14:00:20,421 - ERROR - None - admin - /users/admin/infobox/ - djblets.log.middleware - Exception thrown for user admin at http://localhost/users/admin/infobox/

CustomAvatarService must implement get_etag_data
Traceback (most recent call last):
File "/var/www/dist/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, callback_args, callback_kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/utils/decorators.py", line 29, in _wrapper
return bound_func(
args, kwargs)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/decorators.py", line 25, in _check
return view_func(*args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/utils/decorators.py", line 25, in bound_func
return func(self, args2, kwargs2)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/mixins.py", line 38, in dispatch
*args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/utils/decorators.py", line 29, in _wrapper
return bound_func(
args, kwargs)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/site/decorators.py", line 36, in _check
return view_func(request, local_site=local_site, *args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/utils/decorators.py", line 25, in bound_func
return func(self, args2, kwargs2)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/site/mixins.py", line 53, in dispatch
request, *args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/djblets/views/generic/etag.py", line 41, in dispatch
etag = self.get_etag_data(request,
args, **kwargs)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/views.py", line 121, in get_etag_data
etag_data.extend(avatar_service.get_etag_data(user))
File "/var/www/dist/lib/python2.7/site-packages/djblets/avatars/services/base.py", line 234, in get_etag_data
'%s must implement get_etag_data' % type(self).name
NotImplementedError: CustomAvatarService must implement get_etag_data

chipx86
#1 chipx86
  • -New
    +Confirmed
  • +reviewboard:Release-3.0.x
  • -Project:RBTools
    +EasyFix
    +Project:ReviewBoard
#2 floriecai

taking this too since it's related to @4635

david
#3 david

Fixed in djblets release-1.0.x (52a4d41). This will shp in 1.0.10. Thanks!

  • -Confirmed
    +Fixed