diff --git a/mock_server/__init__.py b/mock_server/__init__.py index 771bc6e..c536568 100644 --- a/mock_server/__init__.py +++ b/mock_server/__init__.py @@ -1 +1,12 @@ +import sys + + +is_before_python3 = sys.version_info[0] < 3 + +if is_before_python3: # python2 + from .ordereddict import OrderedDict +else: + from collections import OrderedDict + + __version__ = "0.3.9" diff --git a/mock_server/methodslisting.py b/mock_server/methodslisting.py index dc71e04..09def94 100644 --- a/mock_server/methodslisting.py +++ b/mock_server/methodslisting.py @@ -10,6 +10,7 @@ from .text import markdown from .util import read_file, slugify from .model import get_url_path +from mock_server import OrderedDict class MethodsLoader(object): @@ -105,7 +106,7 @@ class UrlPath(object): def __init__(self, path): self.path = path self.id = slugify(self.path) - self.resources = {} + self.resources = OrderedDict() class Resource(object): @@ -190,7 +191,7 @@ def _load_responses(self, method, data): except ValueError: data = data - responses = {} + responses = OrderedDict() responses["xmlrpc"] = XMLRPCMethod(method, data) diff --git a/mock_server/model.py b/mock_server/model.py index 93e7bf6..83513ef 100644 --- a/mock_server/model.py +++ b/mock_server/model.py @@ -5,11 +5,7 @@ import glob import functools -try: - from collections import OrderedDict -except ImportError: - from .ordereddict import OrderedDict - +from mock_server import OrderedDict from string import ascii_letters, digits from random import choice from tornado.escape import utf8 @@ -46,12 +42,12 @@ class ApiData(object): def __init__(self, model): self._model = model - self.data = {} + self.data = OrderedDict() self._upstream_server = "" self.password = "" self.http_username = "" self.http_password = "" - self.resources = {} + self.resources = OrderedDict() self.categories = set() @property @@ -85,7 +81,7 @@ def load_categories(self): if "category" in resource) def save(self): - self.data = {} + self.data = OrderedDict() if self.resources: self.data["resources"] = self.resources @@ -114,14 +110,14 @@ def get_rpc_upstream_server(self, method_name): def list_categories(self): if self.resources: - categories = {} - resources = {} + categories = OrderedDict() + resources = OrderedDict() for file_url_path, resource in self.resources.items(): if "category" in resource and resource["category"]: categories[resource["category"]] = [] resources[get_url_path(file_url_path)] = resource else: - categories = {} + categories = OrderedDict() resources = [] categories["__default"] = [] diff --git a/mock_server/ordereddict.py b/mock_server/ordereddict.py index eecacd7..304a5bc 100644 --- a/mock_server/ordereddict.py +++ b/mock_server/ordereddict.py @@ -1,10 +1,14 @@ # Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. # Passes Python2.7's test suite and incorporates all the latest updates. -try: - from _thread import get_ident as _get_ident -except ImportError: - from _dummy_thread import get_ident as _get_ident +from mock_server import is_before_python3 + + +if not is_before_python3: + try: + from _thread import get_ident as _get_ident + except ImportError: + from _dummy_thread import get_ident as _get_ident try: from _abcoll import KeysView, ValuesView, ItemsView diff --git a/mock_server/templates/list_resources.html b/mock_server/templates/list_resources.html index a0dab35..7c860f5 100644 --- a/mock_server/templates/list_resources.html +++ b/mock_server/templates/list_resources.html @@ -15,7 +15,7 @@ {% if some_method %}