summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/bitmask_libraries/keymanager.py34
-rw-r--r--service/pixelated/resources/root_resource.py6
-rw-r--r--service/requirements.txt1
-rw-r--r--service/test/unit/bitmask_libraries/test_keymanager.py20
-rw-r--r--service/test/unit/config/test_site.py5
5 files changed, 31 insertions, 35 deletions
diff --git a/service/pixelated/bitmask_libraries/keymanager.py b/service/pixelated/bitmask_libraries/keymanager.py
index 59f9f62f..28d5f9db 100644
--- a/service/pixelated/bitmask_libraries/keymanager.py
+++ b/service/pixelated/bitmask_libraries/keymanager.py
@@ -13,7 +13,7 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-import datetime
+
from twisted.internet import defer
from twisted.logger import Logger
@@ -48,21 +48,30 @@ class Keymanager(object):
def generate_openpgp_key(self):
current_key = yield self._key_exists(self._email)
if not current_key:
- yield self._generate_key_and_send_to_leap()
+ current_key = yield self._generate_key_and_send_to_leap()
elif current_key.needs_renewal(DEFAULT_EXTENSION_THRESHOLD):
- yield self._regenerate_key()
- yield self._send_key_to_leap()
+ current_key = yield self._regenerate_key_and_send_to_leap()
+
+ logger.info("Current key for {}: {}".format(self._email, current_key.fingerprint))
@defer.inlineCallbacks
- def _regenerate_key(self):
- yield self.keymanager.regenerate_key()
+ def _regenerate_key_and_send_to_leap(self):
+ logger.info("Regenerating keys - this could take a while...")
+ key = yield self.keymanager.regenerate_key()
+ try:
+ yield self.keymanager.send_key()
+ defer.returnValue(key)
+ except Exception as e:
+ # what to be done when upload key error
+ raise UploadKeyError(e.message)
@defer.inlineCallbacks
def _generate_key_and_send_to_leap(self):
logger.info("Generating keys - this could take a while...")
- yield self._gen_key()
+ key = yield self.keymanager.gen_key()
try:
- yield self._send_key_to_leap()
+ yield self.keymanager.send_key()
+ defer.returnValue(key)
except Exception as e:
yield self.delete_key_pair()
raise UploadKeyError(e.message)
@@ -81,15 +90,6 @@ class Keymanager(object):
defer.returnValue(key)
@defer.inlineCallbacks
- def _gen_key(self):
- key = yield self.keymanager.gen_key()
- defer.returnValue(key)
-
- @defer.inlineCallbacks
- def _send_key_to_leap(self):
- yield self.keymanager.send_key()
-
- @defer.inlineCallbacks
def delete_key_pair(self):
private_key = yield self.get_key(self._email, private=True, fetch_remote=False)
public_key = yield self.get_key(self._email, private=False, fetch_remote=False)
diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py
index 101ff6b8..b4eef4ec 100644
--- a/service/pixelated/resources/root_resource.py
+++ b/service/pixelated/resources/root_resource.py
@@ -111,11 +111,7 @@ class RootResource(BaseResource):
return os.path.join(path, '..', 'assets')
def _get_static_folder(self):
- static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "web-ui", "dist"))
- # this is a workaround for packaging
- if not os.path.exists(static_folder):
- static_folder = os.path.abspath(
- os.path.join(os.path.abspath(__file__), "..", "..", "..", "..", "web-ui", "dist"))
+ static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "..", "web-ui", "dist"))
if not os.path.exists(static_folder):
static_folder = os.path.join('/', 'usr', 'share', 'pixelated-user-agent')
return static_folder
diff --git a/service/requirements.txt b/service/requirements.txt
index 48d62a36..ad990332 100644
--- a/service/requirements.txt
+++ b/service/requirements.txt
@@ -10,5 +10,4 @@ Twisted==16.1.1
-e 'git+https://0xacab.org/pixelated/bitmask-dev.git@feat_fetch_remote_on_expiry#egg=leap.bitmask'
-e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.common&subdirectory=common/'
-e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.client&subdirectory=client/'
--e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.server&subdirectory=server/'
-e .
diff --git a/service/test/unit/bitmask_libraries/test_keymanager.py b/service/test/unit/bitmask_libraries/test_keymanager.py
index eb6ba79b..81ba7b65 100644
--- a/service/test/unit/bitmask_libraries/test_keymanager.py
+++ b/service/test/unit/bitmask_libraries/test_keymanager.py
@@ -13,7 +13,7 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-import datetime
+
from mock import patch, MagicMock
from mockito import when
from unittest import TestCase
@@ -70,42 +70,42 @@ class KeymanagerTest(TestCase):
def test_keymanager_generate_openpgp_key_generates_key_correctly(self):
when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(None)
- self.keymanager._gen_key = MagicMock()
- self.keymanager._send_key_to_leap = MagicMock()
+ self.leap_keymanager.gen_key = MagicMock()
+ self.leap_keymanager.send_key = MagicMock()
self.keymanager.generate_openpgp_key()
- self.keymanager._gen_key.assert_called_once()
- self.keymanager._send_key_to_leap.assert_called_once()
+ self.leap_keymanager.gen_key.assert_called_once()
+ self.leap_keymanager.send_key.assert_called_once()
def test_keymanager_generate_openpgp_key_doesnt_regenerate_preexisting_key(self):
mock_open_pgp_key = MagicMock()
mock_open_pgp_key.needs_renewal = MagicMock(return_value=False)
when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(mock_open_pgp_key)
- self.keymanager._gen_key = MagicMock()
+ self.leap_keymanager.gen_key = MagicMock()
self.keymanager.generate_openpgp_key()
- self.keymanager._gen_key.assert_not_called()
+ self.leap_keymanager.gen_key.assert_not_called()
def test_keymanager_generate_openpgp_key_doesnt_upload_preexisting_key(self):
mock_open_pgp_key = MagicMock()
mock_open_pgp_key.needs_renewal = MagicMock(return_value=False)
when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(mock_open_pgp_key)
- self.keymanager._send_key_to_leap = MagicMock()
+ self.leap_keymanager.send_key = MagicMock()
self.keymanager.generate_openpgp_key()
- self.keymanager._send_key_to_leap.assert_not_called()
+ self.leap_keymanager.send_key.assert_not_called()
@defer.inlineCallbacks
def test_keymanager_generate_openpgp_key_deletes_key_when_upload_fails(self):
when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(None)
self.keymanager.delete_key_pair = MagicMock()
- when(self.keymanager)._send_key_to_leap().thenRaise(Exception('Could not upload key'))
+ when(self.leap_keymanager).send_key().thenRaise(Exception('Could not upload key'))
with self.assertRaises(UploadKeyError):
yield self.keymanager.generate_openpgp_key()
diff --git a/service/test/unit/config/test_site.py b/service/test/unit/config/test_site.py
index 6911b4a5..63ac9f1a 100644
--- a/service/test/unit/config/test_site.py
+++ b/service/test/unit/config/test_site.py
@@ -1,10 +1,11 @@
from twisted.trial import unittest
-from mockito import mock
+from mock import MagicMock
from pixelated.config.site import PixelatedSite
from twisted.protocols.basic import LineReceiver
class TestPixelatedSite(unittest.TestCase):
+
def test_add_security_headers(self):
request = self.create_request()
request.process()
@@ -36,7 +37,7 @@ class TestPixelatedSite(unittest.TestCase):
def create_request(self):
channel = LineReceiver()
- channel.site = PixelatedSite(mock())
+ channel.site = PixelatedSite(MagicMock())
request = PixelatedSite.requestFactory(channel=channel, queued=True)
request.method = "GET"
request.uri = "localhost"