environment_test.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # encoding: utf-8
  2. from __future__ import absolute_import
  3. from __future__ import print_function
  4. from __future__ import unicode_literals
  5. import codecs
  6. import pytest
  7. from compose.config.environment import env_vars_from_file
  8. from compose.config.environment import Environment
  9. from tests import unittest
  10. class EnvironmentTest(unittest.TestCase):
  11. def test_get_simple(self):
  12. env = Environment({
  13. 'FOO': 'bar',
  14. 'BAR': '1',
  15. 'BAZ': ''
  16. })
  17. assert env.get('FOO') == 'bar'
  18. assert env.get('BAR') == '1'
  19. assert env.get('BAZ') == ''
  20. def test_get_undefined(self):
  21. env = Environment({
  22. 'FOO': 'bar'
  23. })
  24. assert env.get('FOOBAR') is None
  25. def test_get_boolean(self):
  26. env = Environment({
  27. 'FOO': '',
  28. 'BAR': '0',
  29. 'BAZ': 'FALSE',
  30. 'FOOBAR': 'true',
  31. })
  32. assert env.get_boolean('FOO') is False
  33. assert env.get_boolean('BAR') is False
  34. assert env.get_boolean('BAZ') is False
  35. assert env.get_boolean('FOOBAR') is True
  36. assert env.get_boolean('UNDEFINED') is False
  37. def test_env_vars_from_file_bom(self):
  38. tmpdir = pytest.ensuretemp('env_file')
  39. self.addCleanup(tmpdir.remove)
  40. with codecs.open('{}/bom.env'.format(str(tmpdir)), 'w', encoding='utf-8') as f:
  41. f.write('\ufeffPARK_BOM=박봄\n')
  42. assert env_vars_from_file(str(tmpdir.join('bom.env'))) == {
  43. 'PARK_BOM': '박봄'
  44. }