From bbe16a229b42e96f847246d82e8f1bcff4d60a82 Mon Sep 17 00:00:00 2001 From: Jauhien Piatlicki Date: Fri, 17 Apr 2015 22:59:50 +0200 Subject: [g_sorcery/db_layout,g_sorcery/package_db] better version/format checking, fix exceptions --- g_sorcery/db_layout.py | 4 +++- g_sorcery/package_db.py | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/g_sorcery/db_layout.py b/g_sorcery/db_layout.py index da779bd..8eb81da 100644 --- a/g_sorcery/db_layout.py +++ b/g_sorcery/db_layout.py @@ -26,6 +26,8 @@ PACKAGES_FILE_NAME = 'packages' JSON_FILE_SUFFIX = 'json' BSON_FILE_SUFFIX = 'bson' +SUPPORTED_DB_LAYOUTS=[0, 1] + class CategoryJSON(FileJSON): """ Category file in JSON format. @@ -182,7 +184,7 @@ def get_layout(metadata): raise DBLayoutError("unsupported packages file format: " + category_format) return (category_cls, [file_name(CATEGORIES_FILE_NAME), file_name(METADATA_FILE_NAME)]) else: - raise DBLayoutError("unsupported DB layout version: " + layout_version) + raise DBLayoutError("unsupported DB layout version: " + str(layout_version)) class DBLayout(object): diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py index 5374ae5..4c67fdc 100644 --- a/g_sorcery/package_db.py +++ b/g_sorcery/package_db.py @@ -18,12 +18,13 @@ import portage from .compatibility import basestring, py2k, TemporaryDirectory -from .db_layout import DBLayout, JSON_FILE_SUFFIX -from .exceptions import DBError, DBStructureError, InvalidKeyError, SyncError +from .db_layout import DBLayout, JSON_FILE_SUFFIX, SUPPORTED_DB_LAYOUTS, SUPPORTED_FILE_FORMATS +from .exceptions import DBError, DBLayoutError, DBStructureError, InvalidKeyError, SyncError from .fileutils import FileJSON, load_remote_file, copy_all, wget from .g_collections import Package from .logger import Logger +SUPPORTED_DB_STRUCTURES=[0, 1] class PackageDB(object): """ @@ -142,11 +143,17 @@ class PackageDB(object): if preferred_layout_version == 0 \ and preferred_db_version != 0: - raise DBStructureError("Wrong DB version: " + preferred_db_version + \ + raise DBStructureError("Wrong DB version: " + str(preferred_db_version) + \ ", with DB layout version 0 it can be only 0") - if not preferred_db_version in [0, 1]: - raise DBStructureError("Unsupported DB version: " + preferred_db_version) + if not preferred_db_version in SUPPORTED_DB_STRUCTURES: + raise DBStructureError("Unsupported DB version: " + str(preferred_db_version)) + + if not preferred_layout_version in SUPPORTED_DB_LAYOUTS: + raise DBLayoutError("unsupported DB layout version: " + str(preferred_layout_version)) + + if not preferred_category_format in SUPPORTED_FILE_FORMATS: + raise DBLayoutError("unsupported packages file format: " + preferred_category_format) self.logger = Logger() self.directory = os.path.abspath(directory) @@ -261,7 +268,7 @@ class PackageDB(object): elif db_version == 1: pass else: - raise DBStructureError("Unsupported DB version: " + db_version) + raise DBStructureError("Unsupported DB version: " + str(db_version)) def add_category(self, category, description=None): -- cgit v1.2.3-65-gdbad