summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/core/api_contract.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2016-05-01 11:09:07 -0400
committerKali Kaneko <kali@leap.se>2016-05-02 19:36:26 -0400
commit1173e77cb8d635936c9730ba4ad8b88b24ad1be2 (patch)
tree025d58a7fabdc432d05487886b619efd5fc14f87 /src/leap/bitmask/core/api_contract.py
parent08da5b11103cdd132c3ac4110ba42fcc8510a78b (diff)
[feature] pluggable backends and api registry
the idea behind this mechanism (partially implemented for that) is to be able to check the backend output against some type annotations. We want to be able to detect if a given backend (real services or authoritative mocks) have diverged from what's specified in the API annotations.
Diffstat (limited to 'src/leap/bitmask/core/api_contract.py')
-rw-r--r--src/leap/bitmask/core/api_contract.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/leap/bitmask/core/api_contract.py b/src/leap/bitmask/core/api_contract.py
new file mode 100644
index 00000000..86b600c1
--- /dev/null
+++ b/src/leap/bitmask/core/api_contract.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+# api_contract.py
+# Copyright (C) 2016 LEAP Encryption Acess Project
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+Display a human-readable representation of the methods that compound the public
+api for Bitmask Core.
+
+The values are meant to be type annotations.
+"""
+
+if __name__ == "__main__":
+ from leap.bitmask.core.service import BitmaskBackend
+ from leap.bitmask.core import api
+ backend = BitmaskBackend()
+
+ print '========= Bitmask Core API =================='
+ print
+
+ for key in api.registry:
+ human_key = key.replace('do_', '').lower()
+ value = api.registry[key]
+
+ print("{}:\t\t{}".format(
+ human_key,
+ ' '.join([x for x in value])))
+ print
+ print '============================================='