From aef24fae3df2893533e1776f88643bb162433023 Mon Sep 17 00:00:00 2001
From: Alex Kuzmenko <alx.kuzm@gmail.com>
Date: Tue, 17 Oct 2017 12:32:53 +0300
Subject: [PATCH] `aiohttp-session` is not required (#107)

* aiohttp_session is not required

* fix code coverage

* has_aiohttp_session -> HAS_AIOHTTP_SESSION
---
 aiohttp_security/session_identity.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/aiohttp_security/session_identity.py b/aiohttp_security/session_identity.py
index 5fdf55a..5d9cea0 100644
--- a/aiohttp_security/session_identity.py
+++ b/aiohttp_security/session_identity.py
@@ -6,7 +6,11 @@ to configure aiohttp_session properly.
 
 import asyncio
 
-from aiohttp_session import get_session
+try:
+    from aiohttp_session import get_session
+    HAS_AIOHTTP_SESSION = True
+except ImportError:  # pragma: no cover
+    HAS_AIOHTTP_SESSION = False
 
 from .abc import AbstractIdentityPolicy
 
@@ -16,6 +20,10 @@ class SessionIdentityPolicy(AbstractIdentityPolicy):
     def __init__(self, session_key='AIOHTTP_SECURITY'):
         self._session_key = session_key
 
+        if not HAS_AIOHTTP_SESSION:  # pragma: no cover
+            raise ImportError(
+                'SessionIdentityPolicy requires `aiohttp_session`')
+
     @asyncio.coroutine
     def identify(self, request):
         session = yield from get_session(request)