diff --git a/statik/context.py b/statik/context.py index a9be54c..fa6dd3c 100644 --- a/statik/context.py +++ b/statik/context.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals + +import os from copy import deepcopy, copy from future.utils import iteritems @@ -67,6 +69,7 @@ def build(self, db=None, safe_mode=False, for_each_inst=None, extra=None): """Builds a dictionary that can be used as context for template rendering.""" result = copy(self.initial) result.update(self.static) + result.update(os.environ) if self.dynamic: result.update(self.build_dynamic(db, extra=extra, safe_mode=safe_mode)) if self.for_each and for_each_inst: diff --git a/tests/modular/test_context.py b/tests/modular/test_context.py index ff3a0b4..bc4b205 100644 --- a/tests/modular/test_context.py +++ b/tests/modular/test_context.py @@ -1,5 +1,6 @@ # -*- coding:utf-8 -*- import unittest +from unittest import mock from statik.context import StatikContext from statik.database import StatikDatabase @@ -14,3 +15,11 @@ def test_build_context(self): result = context.build(db=StatikDatabase(models={}, data_path=''), extra={'my_var': 5}) assert result.get('render_elm') is False + + def test_env_var_in_context(self): + with mock.patch.dict('statik.context.os.environ', + {'HOME': 'HOME!!'}): + context = StatikContext() + + result = context.build(db=StatikDatabase(models={}, data_path='')) + assert result.get('HOME') == 'HOME!!'