Skip to content
This repository has been archived by the owner on Sep 29, 2019. It is now read-only.

Commit

Permalink
* реализован __getitem__ для yaPerson
Browse files Browse the repository at this point in the history
* тест к нововведению выше
  • Loading branch information
idlesign committed Oct 16, 2010
1 parent 477457f commit 724370b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
13 changes: 12 additions & 1 deletion pyyaru/pyyaru.py
Expand Up @@ -341,6 +341,17 @@ class yaPerson(yaBase):
_content_type = 'application/x-yaru+xml; type=person;'
_inclub_roles = ['member', 'moderator', 'owner']

def __getitem__(self, key):
"""Разрешает обращение к свойствам объекта в нотации self[key].
Для максимальной похожести обращения к yaPerson с обращением
к свойству author вложенных объектов yaEntries.
"""
try:
return self.__dict__[key]
except KeyError as e:
raise AttributeError(e)

def change_name(self, new_name):
"""Смена имени пользователя. Под капотом происходит создание
новой записи типа 'rename'.
Expand Down Expand Up @@ -743,7 +754,7 @@ def __open_url(self, data=None, request_method="GET", content_type=None):
Полученный файл (token) можно положить рядом с pyyaru.py, в таком случае
реквизиты будут взяты из него автоматически.
Вернёт кортеж из типа ресурса, полученных с него данных, либо None.
Вернёт кортеж из типа ресурса, полученных с него данных и флага успешности запроса, либо None.
"""
url = self.url
Expand Down
4 changes: 4 additions & 0 deletions pyyaru/tests.py
Expand Up @@ -27,6 +27,10 @@ class yaPersonCheck(unittest.TestCase):
def setUp(self):
self.person = pyyaru.yaPerson(resource_url_person).get()

def test_geitem(self):
"""Проверка возможности доступа к свойстам объекта в нотации self[key]."""
self.assertEqual(self.person['id'], 'urn:ya.ru:person/96845657')

def test_id_isset(self):
"""Запись первого параметра конструктора в свойство id."""
person = pyyaru.yaPerson(resource_urn_person)
Expand Down

0 comments on commit 724370b

Please sign in to comment.