one step closer with the test.

This commit is contained in:
Hellowlol 2017-02-27 23:16:02 +01:00
parent ff4b1010a9
commit db3b729360
3 changed files with 33 additions and 7 deletions

View file

@ -177,12 +177,13 @@ class PlexObject(object):
results.append(elem.attrib.get(attr)) results.append(elem.attrib.get(attr))
return results return results
def reload(self): def reload(self, key=None):
""" Reload the data for this object from self.key. """ """ Reload the data for this object from self.key. """
if not self.key: key = key or self.key
if not key:
raise Unsupported('Cannot reload an object not built from a URL.') raise Unsupported('Cannot reload an object not built from a URL.')
self._initpath = self.key self._initpath = key
data = self._server.query(self.key) data = self._server.query(key)
self._loadData(data[0]) self._loadData(data[0])
return self return self

View file

@ -144,7 +144,7 @@ class Library(PlexObject):
for section in self.sections(): for section in self.sections():
section.deleteMediaPreviews() section.deleteMediaPreviews()
def add(self, name='', media_type='', agent='', scanner='', location='', language='en', *args, **kwargs): def add(self, name='', type='', agent='', scanner='', location='', language='en', *args, **kwargs):
""" Simplified add for the most common options. """ Simplified add for the most common options.
name (str): Name of the library name (str): Name of the library
@ -227,9 +227,13 @@ class LibrarySection(PlexObject):
def edit(self, **kwargs): def edit(self, **kwargs):
"""Edit a library """Edit a library
See addLibrary for example usage. See :class:`~plexapi.library.Library for example usage.
Note: agent is required. Note: agent is required.
kwargs (dict): Dict of settings to edit. Some values might need to be quoted.
Value of scanner, name and location is quoted automatically.
""" """
# We might need to quote more, but lets start with what we know. # We might need to quote more, but lets start with what we know.
kw = {} kw = {}
@ -239,7 +243,12 @@ class LibrarySection(PlexObject):
kw[k] = v kw[k] = v
part = '/library/sections/%s?%s' % (self.key, urlencode(kw)) part = '/library/sections/%s?%s' % (self.key, urlencode(kw))
return self._server.query(part, method=self._server._session.put) self._server.query(part, method=self._server._session.put)
# Reload this way since the self.key dont have a full path, but is simply a id.
for s in self._server.library.sections():
if s.key == self.key:
return s
def get(self, title): def get(self, title):
""" Returns the media item with the specified title. """ Returns the media item with the specified title.

View file

@ -76,6 +76,22 @@ def test_library_search(pms):
m = pms.library.search('16 blocks')[0] m = pms.library.search('16 blocks')[0]
assert m.title == '16 Blocks' assert m.title == '16 Blocks'
def test_library_add_edit_delete(pms):
d = dict(name='zomg strange11', type='movie', agent='com.plexapp.agents.imdb',
scanner='Plex Movie Scanner', language='en')
rn = dict(name='a renamed lib', type='movie', agent='com.plexapp.agents.imdb')
# We dont want to add a location because we dont want to start scanning.
pms.library.add(**d)
assert pms.library.section('zomg strange11')
edited_library = pms.library.section('zomg strange11').edit(**rn)
assert edited_library.title == 'a renamed lib'
pms.library.section('a renamed lib').delete()
def test_library_Library_cleanBundle(pms): def test_library_Library_cleanBundle(pms):
pms.library.cleanBundles() pms.library.cleanBundles()