Home | Trees | Indices | Help |
---|
|
1 # Elisa - Home multimedia server 2 # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 3 # All rights reserved. 4 # 5 # This file is available under one of two license agreements. 6 # 7 # This file is licensed under the GPL version 3. 8 # See "LICENSE.GPL" in the root of this distribution including a special 9 # exception to use Elisa with Fluendo's plugins. 10 # 11 # The GPL part of Elisa is also available under a commercial licensing 12 # agreement from Fluendo. 13 # See "LICENSE.Elisa" in the root directory of this distribution package 14 # for details on that license. 15 16 from elisa.core.tests.elisa_test_case import ElisaTestCase 17 from elisa.core import media_db, media_uri, db_backend 18 import os, tempfile, platform 19 DB_DUMP="""\ 20 21 22 """ 2325 first_load = True 2616828 ElisaTestCase.__init__(self, methodName=methodName) 29 self._db_file = os.path.join(tempfile.gettempdir(), 'test.db') 30 31 if os.path.exists(self._db_file): 32 os.unlink(self._db_file) 33 34 try: 35 backend = db_backend.DBBackend(db_backend='sqlite', 36 database=self._db_file) 37 except db_backend.DBBackendError, error: 38 self.skip = error3941 ElisaTestCase.setUp(self) 42 43 self._tmp_uri = media_uri.MediaUri(u'file:///%s/' % tempfile.gettempdir()) 44 45 backend = db_backend.DBBackend(db_backend='sqlite', 46 database=self._db_file) 47 backend.sql_execute(DB_DUMP) 48 self._db = media_db.MediaDB(backend, True)49 53 5456 57 version_row = self._db._backend.sql_execute("select version from core_meta") 58 self.failUnless(version_row) 59 version = version_row[0].version 60 self.assertEqual(version, media_db.CURRENT_DB_VERSION)61 6264 """ Add a new media source in the database 65 """ 66 source = self._db.add_source(self._tmp_uri, 'tmp') 67 self.failUnless(source)6870 """ Update source's "available" flag 71 """ 72 self._db.add_source(self._tmp_uri, 'tmp') 73 source = self._db.get_source_for_uri(self._tmp_uri) 74 self.failUnless(source) 75 self.failUnless(self._db.hide_source(source)) 76 self.failUnless(self._db.show_source(source))7779 source = self._db.add_source(self._tmp_uri, 'tmp') 80 source = self._db.get_source_for_uri(self._tmp_uri) 81 self.failUnless(source) 82 83 # TODO: test metadata keyword in add_media_node 84 m_uri = self._tmp_uri.join(u'foo.avi') 85 86 added = self._db.add_media(m_uri, "foo.avi", source, 87 'video') 88 self.assertEquals(added, True) 89 90 media = self._db.get_media_information(m_uri) 91 self.failUnless(media) 92 self.assertEquals(media.uri, unicode(m_uri)) 93 self.assertEquals(media.short_name, 'foo.avi') 94 media_id = media.id 95 self.failUnless(self._db.del_media_node(media)) 96 97 media = self._db.get_media_with_id(media_id) 98 self.assertEquals(media.deleted, 1)99 100102 source = self._db.add_source(self._tmp_uri, 'tmp') 103 source = self._db.get_source_for_uri(self._tmp_uri) 104 self.failUnless(source) 105 self.assertEquals(source.uri, repr(self._tmp_uri))106108 source = self._db.add_source(self._tmp_uri, 'tmp') 109 m_uri = self._tmp_uri.join('foo.mp3') 110 source = self._db.get_source_for_uri(self._tmp_uri) 111 added = self._db.add_media(m_uri, "foo.mp3", source, 112 'file', format='audio') 113 self.assertEquals(added, True) 114 115 foo_media = self._db.get_media_information(m_uri) 116 self.assertEquals(added, True) 117 f = os.path.join(tempfile.gettempdir(), 'foo.mp3') 118 119 if platform.system() == 'Windows': 120 f = "file:///%s" % f.replace('\\', '/') 121 else: 122 f = "file://%s" % f 123 124 self.assertEquals(foo_media.uri, f) 125 self.assertEquals(foo_media.short_name, 'foo.mp3') 126 self.assertEquals(foo_media.format, 'audio') 127 self.assertEquals(foo_media.typ, 'file')128 129 # TODO: test metadata 130132 source = self._db.add_source(self._tmp_uri, 'tmp') 133 m_uri = self._tmp_uri.join('foo.mp3') 134 source = self._db.get_source_for_uri(self._tmp_uri) 135 added = self._db.add_media(m_uri, "foo.mp3", source, 136 'file', format='audio') 137 self.assertEquals(added, True) 138 139 media = self._db.get_media_information(m_uri) 140 media_id = media.id 141 foo_media = self._db.get_media_with_id(media_id) 142 self.failUnless(foo_media) 143 144 self.assertEquals(foo_media.uri, repr(m_uri)) 145 self.assertEquals(foo_media.uri, media.uri) 146 self.assertEquals(foo_media.id, media.id)147149 """ Update some attributes in database of the given media 150 """ 151 source = self._db.add_source(self._tmp_uri, 'tmp') 152 m_uri = self._tmp_uri.join('foo.mp3') 153 source = self._db.get_source_for_uri(self._tmp_uri) 154 155 media = self._db.get_media_information(m_uri) 156 self._db.del_media_node(media, force_drop=True) 157 158 added = self._db.add_media(m_uri, "foo.mp3", source, 159 'file', format='audio') 160 self.assertEquals(added, True) 161 media = self._db.get_media_information(m_uri) 162 163 self._db.update_media_metadata(media, artist='foo', album='bar') 164 infos = self._db.get_media_information(m_uri) 165 self.failUnless(infos) 166 self.assertEquals(infos.artist, 'foo') 167 self.assertEquals(infos.album, 'bar')
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0beta1 on Wed Jan 16 19:10:57 2008 | http://epydoc.sourceforge.net |