def setUp(self): """DeviceModel test set up""" if os.path.isfile('/tmp/box.db'): os.unlink('/tmp/box.db') DBHelper().set_db('/tmp/box.db') InstallHelper.reset() DeviceModel.install()
def setUp(self): """DeviceModel test set up""" if os.path.isfile("/tmp/box.db"): os.unlink("/tmp/box.db") DBHelper().set_db("/tmp/box.db") InstallHelper.reset() DeviceModel.install()
def _install(cls): """Install base table and attributes""" DeviceModel.install() ExtendedModel.install() table = DBHelper.quote_identifier(cls._table) pk = DBHelper.quote_identifier(cls._pk) return ( lambda: ( DBHelper().query(""" CREATE TABLE %s ( %s INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL DEFAULT '', "abspath" TEXT NOT NULL DEFAULT '', "extension" TEXT, "type" TEXT NOT NULL DEFAULT '', "subtype" TEXT NOT NULL DEFAULT '', "charset" TEXT, "checksum" TEXT NOT NULL DEFAULT '', "size" INTEGER, "created_at" INTEGER, "indexed_at" INTEGER, "is_hidden" INTEGER NOT NULL DEFAULT 0, "rating" INTEGER NOT NULL DEFAULT 0, "device" INTEGER, "devpath" TEXT NOT NULL DEFAULT '', FOREIGN KEY ("device") REFERENCES "device"("_id") ON DELETE SET NULL ON UPDATE SET NULL ) """ % (table, pk)), DBHelper().query(""" CREATE UNIQUE INDEX "UNQ_FILE_DUPLICATE" ON %s ("name", "devpath", "checksum") """ % table), cls._create_attribute_tables(), cls._create_attribute( 'width', 'Width', 'integer', 'Image'), cls._create_attribute( 'height', 'Height', 'integer', 'Image'), cls._create_attribute( 'latitude', 'Latitude', 'real', 'Image'), cls._create_attribute( 'longitude', 'Longitude', 'real', 'Image'), cls._create_attribute( 'timestamp', 'Timestamp', 'integer', 'Image'), cls._create_attribute( 'orientation', 'Orientation', 'integer', 'Image') ), )
def _install(cls): """Install base table and attributes""" DeviceModel.install() ExtendedModel.install() table = DBHelper.quote_identifier(cls._table) pk = DBHelper.quote_identifier(cls._pk) return ( lambda: (DBHelper().query(""" CREATE TABLE %s ( %s INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL DEFAULT '', "abspath" TEXT NOT NULL DEFAULT '', "extension" TEXT, "type" TEXT NOT NULL DEFAULT '', "subtype" TEXT NOT NULL DEFAULT '', "charset" TEXT, "checksum" TEXT NOT NULL DEFAULT '', "size" INTEGER, "created_at" INTEGER, "indexed_at" INTEGER, "is_hidden" INTEGER NOT NULL DEFAULT 0, "rating" INTEGER NOT NULL DEFAULT 0, "device" INTEGER, "devpath" TEXT NOT NULL DEFAULT '', FOREIGN KEY ("device") REFERENCES "device"("_id") ON DELETE SET NULL ON UPDATE SET NULL ) """ % (table, pk)), DBHelper().query(""" CREATE UNIQUE INDEX "UNQ_FILE_DUPLICATE" ON %s ("name", "devpath", "checksum") """ % table), cls._create_attribute_tables(), cls._create_attribute('width', 'Width', 'integer', 'Image'), cls._create_attribute('height', 'Height', 'integer', 'Image'), cls._create_attribute('latitude', 'Latitude', 'real', 'Image'), cls._create_attribute('longitude', 'Longitude', 'real', 'Image'), cls._create_attribute('timestamp', 'Timestamp', 'integer', 'Image' ), cls._create_attribute('orientation', 'Orientation', 'integer', 'Image')), )
try: os.rmdir(file_model.abspath()) except OSError: pass # dir is not empty except OSError: logger.error('Unable to remove duplicate %s' % duplicate) logger.info('%s already exists, skipping..' % os.path.join(devpath, filename)) open(flagfile, 'w').close() # touch indexed flag if (__name__ == '__main__'): """~$ python file.py path/to/database path/to/basedir""" if len(sys.argv) < 3: exit(1) database = sys.argv[1] basedir = '%s/devices' % sys.argv[2] #TODO: read from config if not os.path.isdir(basedir): exit(2) DBHelper(database) DeviceModel.install() FileModel.install() FileIndexer(basedir).index_all_devices()