From afe7c9e51c07479d77a8fe909f5186dbd81c893c Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 10 May 2019 11:33:18 +0200
Subject: [PATCH] Virtual env

---
 molecule/default/molecule.yml          |  3 ++-
 molecule/default/tests/test_default.py | 11 +++++++++++
 tasks/funkwhale.yml                    | 15 +++++++++++++--
 tasks/main.yml                         |  6 +++---
 tasks/packages.yml                     |  3 ++-
 5 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
index f52748f..e9b1cf4 100644
--- a/molecule/default/molecule.yml
+++ b/molecule/default/molecule.yml
@@ -6,7 +6,7 @@ driver:
 lint:
   name: yamllint
 platforms:
-  - name: instance
+  - name: debian-stretch
     image: alehaa/debian-systemd:stretch
     command: /sbin/init
     tmpfs:
@@ -19,6 +19,7 @@ provisioner:
   name: ansible
   lint:
     name: ansible-lint
+
 verifier:
   name: testinfra
   lint:
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
index 0f4439c..14b1ebb 100644
--- a/molecule/default/tests/test_default.py
+++ b/molecule/default/tests/test_default.py
@@ -97,3 +97,14 @@ def test_api_download(host):
 
     assert f.exists is True
     assert f.contains('__version__ = "0.19.0-rc2"') is True
+
+
+def test_virtualenv(host):
+    expected_packages = {"Django", "djangorestframework", "celery"}
+    packages = host.pip_package.get_packages(
+        pip_path="/srv/funkwhale/virtualenv/bin/pip"
+    )
+    names = set(packages.keys())
+
+    intersection = expected_packages & names
+    assert intersection == expected_packages
diff --git a/tasks/funkwhale.yml b/tasks/funkwhale.yml
index 4327615..44e3e61 100644
--- a/tasks/funkwhale.yml
+++ b/tasks/funkwhale.yml
@@ -1,7 +1,5 @@
 ---
 
-
-
 - name: "Create funkwhale user"
   user:
     name: "{{ funkwhale_username }}"
@@ -48,3 +46,16 @@
     src: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/{{ funkwhale_version }}/download?job=build_api
     dest: "{{ funkwhale_install_path }}"
     remote_src: true
+
+- name: "Setup virtualenv"
+  pip:
+    name: wheel
+    virtualenv: "{{ funkwhale_install_path }}/virtualenv"
+    virtualenv_python: python3
+
+
+- name: "Install python dependencies"
+  pip:
+    requirements: "{{ funkwhale_install_path }}/api/requirements.txt"
+    virtualenv: "{{ funkwhale_install_path }}/virtualenv"
+    virtualenv_python: python3
diff --git a/tasks/main.yml b/tasks/main.yml
index f22e3ac..1f5d635 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,6 +1,6 @@
 ---
-# - include: packages.yml
-# - include: db.yml
-# - include: redis.yml
+- include: packages.yml
+- include: db.yml
+- include: redis.yml
 - include: funkwhale.yml
 - include: nginx.yml
diff --git a/tasks/packages.yml b/tasks/packages.yml
index f71a2ac..82bbeae 100644
--- a/tasks/packages.yml
+++ b/tasks/packages.yml
@@ -6,7 +6,8 @@
       - "python3"
       - "python3-dev"
       - "python3-pip"
-      - "python3-venv"
+      - "python-virtualenv"  # for ansible
+      - "python3-virtualenv"
       - "libldap2-dev"
       - "libsasl2-dev"
       - "git"
-- 
GitLab