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

Commit

Permalink
* повышен градус версии c рализом api
Browse files Browse the repository at this point in the history
* в документацию добавлен пример удаления публикации
* новый тест на создание и удаление записи
  • Loading branch information
idlesign committed Oct 21, 2010
1 parent 5b05617 commit 06f40b2
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 8 deletions.
3 changes: 3 additions & 0 deletions docs/source/yaentry.rst
Expand Up @@ -38,6 +38,9 @@
}
).save(person.links['posts'])

А теперь удалим эту запись за ненадобностью::

nocomment_entry.delete()

.. _class-yaentry:

Expand Down
2 changes: 1 addition & 1 deletion pyyaru/__init__.py
@@ -1 +1 @@
VERSION = (0, 3, 1)
VERSION = (0, 3, 2)
15 changes: 10 additions & 5 deletions pyyaru/pyyaru.py
Expand Up @@ -32,7 +32,7 @@

NAMESPACES = {
'a': 'http://www.w3.org/2005/Atom',
'y': 'yandex:data', # TODO: Скоро будет http://api.yandex.ru/yaru/
'y': 'http://api.yandex.ru/yaru/',
'thr': 'http://purl.org/syndication/thread/1.0',
}

Expand Down Expand Up @@ -238,22 +238,27 @@ def save(self, target_url=None):

if self.id is None:
resource_data = yaResource(target_url).create(data, self._content_type)
if not resource_data[2]:
if resource_data[2] == False:
raise yaOperationError('Unable to create resource at "%s".' % target_url)
else:
resource_data = yaResource(self.links['edit']).update(data, self._content_type)
if not resource_data[2]:
if resource_data[2] == False:
raise yaOperationError('Unable to update resource at "%s".' % self.links['edit'])

if resource_data is not None and resource_data[2]:
self._parse(resource_data)

def delete(self):
"""Используется для удаления ресурса."""
"""Используется для удаления ресурса.
В случае удачного свершения свойство id объекта становится равным None.
"""
if self.id is not None:
resource_data = yaResource(self.links['edit']).delete()
if not resource_data[2]:
if resource_data[2] == False:
raise yaOperationError('Unable to delete resource at "%s".' % self.links['edit'])
else:
self.id = None


class yaCollection(yaBase):
Expand Down
26 changes: 24 additions & 2 deletions pyyaru/tests.py
Expand Up @@ -57,7 +57,10 @@ def test_lazy_load_on_attrib_access(self):
self.assertEqual(person.id, resource_urn_person)

def test_me_resource(self):
"""Загрузка профиля с ресурса /me/. Требует авторизации."""
"""Загрузка профиля с ресурса /me/.
Требует авторизации.
"""
person = pyyaru.yaPerson(resource_uri_me).get()
self.assertNotEqual(person.id, resource_uri_me)

Expand Down Expand Up @@ -172,12 +175,31 @@ def test_kwarg_attributes_wrong(self):
self.assertRaises(pyyaru.yaEntryAccessUnknownError, pyyaru.yaEntry, attributes={'access': 'me-and-my-kitten'})

def test_init_properties(self):
"""Проверка инициализации свойств несвязанного объяекта."""
"""Проверка инициализации свойств несвязанного объекта."""
entry = pyyaru.yaEntry()
self.assertEqual(entry.access, 'private')
self.assertEqual(entry.comments_disabled, False)
self.assertEqual(entry.type, 'text')

def test_create_delete(self):
"""Проверка создания и удаления публикации.
Требует авторизации.
"""
me = pyyaru.yaPerson(resource_uri_me).get()
entry = pyyaru.yaEntry(
attributes={
'type': 'text',
'title': 'Тестовый заголовок из pyyaru',
'content': 'Это сообщение является тестовым.',
'access': 'private',
'comments_disabled': True,
}
).save(me.links['posts'])
self.assertNotEqual(entry.id, None)
entry.delete()
self.assertEqual(entry.id, None)


class yaCollectionCheck(unittest.TestCase):

Expand Down

0 comments on commit 06f40b2

Please sign in to comment.