changeset 775:ba0a6bd5e913

tests: Make it possible to run FoodTruck tests.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 04 Jul 2016 00:12:49 -0700
parents 2bb3c1a04e98
children 3799621cd25b
files foodtruck/web.py tests/conftest.py tests/servings/test_admin.yaml
diffstat 3 files changed, 29 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/foodtruck/web.py	Sun Jul 03 16:44:18 2016 -0700
+++ b/foodtruck/web.py	Mon Jul 04 00:12:49 2016 -0700
@@ -3,6 +3,8 @@
 from flask import Flask
 from werkzeug import SharedDataMiddleware
 from .blueprint import foodtruck_bp, login_manager, bcrypt_ext
+from .configuration import FoodTruckConfigNotFoundError
+from .sites import InvalidSiteError
 
 
 logger = logging.getLogger(__name__)
@@ -13,7 +15,7 @@
     app.config.from_object('foodtruck.settings')
     app.config.from_envvar('FOODTRUCK_SETTINGS', silent=True)
     if extra_settings:
-        app.config.from_object(extra_settings)
+        app.config.update(extra_settings)
 
     admin_root = app.config.setdefault('FOODTRUCK_ROOT', os.getcwd())
     config_path = os.path.join(admin_root, 'app.cfg')
--- a/tests/conftest.py	Sun Jul 03 16:44:18 2016 -0700
+++ b/tests/conftest.py	Mon Jul 04 00:12:49 2016 -0700
@@ -371,17 +371,27 @@
         expected_headers = self.spec.get('headers')
         expected_output = self.spec.get('out')
         expected_contains = self.spec.get('out_contains')
+        is_admin_test = self.spec.get('admin') is True
 
         from werkzeug.test import Client
         from werkzeug.wrappers import BaseResponse
-        from piecrust.app import PieCrustFactory
-        from piecrust.serving.server import Server
         with mock_fs_scope(fs, keep=self.mock_debug):
-            appfactory = PieCrustFactory(
-                    fs.path('/kitchen'),
-                    theme_site=self.is_theme_site)
-            server = Server(appfactory)
-            test_app = self._TestApp(server)
+            if is_admin_test:
+                from foodtruck.web import create_foodtruck_app
+                s = {
+                        'FOODTRUCK_CMDLINE_MODE': True,
+                        'FOODTRUCK_ROOT': fs.path('/kitchen')
+                        }
+                test_app = create_foodtruck_app(s)
+            else:
+                from piecrust.app import PieCrustFactory
+                from piecrust.serving.server import Server
+                appfactory = PieCrustFactory(
+                        fs.path('/kitchen'),
+                        theme_site=self.is_theme_site)
+                server = Server(appfactory)
+                test_app = self._TestApp(server)
+
             client = Client(test_app, BaseResponse)
             resp = client.get(url)
             assert expected_status == resp.status_code
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/servings/test_admin.yaml	Mon Jul 04 00:12:49 2016 -0700
@@ -0,0 +1,9 @@
+---
+admin: true
+url: /
+in:
+    pages/one.html: ''
+    posts/2016-01-01_post1.html: ''
+out_contains: |
+    1 pages
+