diff --git a/mypy.ini b/mypy.ini
--- a/mypy.ini
+++ b/mypy.ini
@@ -26,6 +26,9 @@
 [mypy-pytest.*]
 ignore_missing_imports = True
 
+[mypy-pytest_postgresql.*]
+ignore_missing_imports = True
+
 [mypy-requests_mock.*]
 ignore_missing_imports = True
 
diff --git a/swh/lister/debian/tests/conftest.py b/swh/lister/debian/tests/conftest.py
--- a/swh/lister/debian/tests/conftest.py
+++ b/swh/lister/debian/tests/conftest.py
@@ -5,8 +5,12 @@
 
 import pytest
 
-from swh.lister.core.tests.conftest import *  # noqa
+from pytest_postgresql.janitor import DatabaseJanitor
+from sqlalchemy import create_engine
+from sqlalchemy.orm import sessionmaker
 
+from swh.lister.core.tests.conftest import *  # noqa
+from swh.lister.core.models import SQLBase
 from swh.lister.debian import debian_init
 
 
@@ -28,3 +32,29 @@
     })
 
     return lister
+
+
+@pytest.fixture
+def sqlalchemy_engine(postgresql_proc):
+    pg_host = postgresql_proc.host
+    pg_port = postgresql_proc.port
+    pg_user = postgresql_proc.user
+
+    pg_db = 'sqlalchemy-tests'
+
+    url = f'postgresql://{pg_user}@{pg_host}:{pg_port}/{pg_db}'
+    with DatabaseJanitor(
+            pg_user, pg_host, pg_port, pg_db, postgresql_proc.version
+    ):
+        engine = create_engine(url)
+        yield engine
+        engine.dispose()
+
+
+@pytest.fixture
+def session(sqlalchemy_engine):
+    SQLBase.metadata.create_all(sqlalchemy_engine)
+    Session = sessionmaker(bind=sqlalchemy_engine)
+    session = Session()
+    yield session
+    session.close()
diff --git a/swh/lister/debian/tests/test_models.py b/swh/lister/debian/tests/test_models.py
new file mode 100644
--- /dev/null
+++ b/swh/lister/debian/tests/test_models.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2019 The Software Heritage developers
+# See the AUTHORS file at the top-level directory of this distribution
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+import pytest
+
+from swh.lister.debian.models import Distribution, Area
+
+
+def test_area_index_uris_deb(session):
+    d = Distribution(
+        name='Debian', type='deb', mirror_uri='http://deb.debian.org/debian'
+    )
+    a = Area(
+        distribution=d,
+        name='unstable/main',
+        active=True,
+    )
+    session.add_all([d, a])
+    session.commit()
+
+    uris = list(a.index_uris())
+    assert uris
+
+
+def test_area_index_uris_rpm(session):
+    d = Distribution(
+        name='CentOS', type='rpm',
+        mirror_uri='http://centos.mirrors.proxad.net/'
+    )
+    a = Area(
+        distribution=d,
+        name='8',
+        active=True,
+    )
+    session.add_all([d, a])
+    session.commit()
+
+    with pytest.raises(NotImplementedError):
+        list(a.index_uris())