11from io import StringIO
22import os
33import unittest
4+ from unittest import mock
45
56from dotenv .main import load_dotenv
67
78import dotenv_vault .main as vault
89
910class TestParsing (unittest .TestCase ):
11+
1012 TEST_KEYS = [
1113 # OK.
1214 ["dotenv://:key_0dec82bea24ada79a983dcc11b431e28838eae59a07a8f983247c7ca9027a925@dotenv.local/vault/.env.vault?environment=development" ,
@@ -23,7 +25,7 @@ class TestParsing(unittest.TestCase):
2325 # Missing environment.
2426 ["dotenv://:key_1234@dotenv.org/vault/.env.vault" , False , "" ]
2527 ]
26-
28+
2729 def test_key_parsing (self ):
2830 for test in self .TEST_KEYS :
2931 dotenv_key , should_pass , environment_key_check = test
@@ -49,7 +51,7 @@ def test_key_parsing(self):
4951 DOTENV_VAULT_STAGING="uGHOx986lAWGU9s5mN5+b0jl0HAvNj4Mqs/zwN7Bl8UeV+C6hBg5JuKdi2AGGLka5g=="
5052 DOTENV_VAULT_PRODUCTION="YpDpGGf+eqiOPibziIQQbw4gBW/zfOBR6jow5B1UHYTTu6Kak6xy+qP/vXZWaPp4HOh2/Nu7gRK2CWfrbtk="
5153 """
52-
54+
5355 def test_vault_parsing (self ):
5456 old_dotenv_key = os .environ .get ("DOTENV_KEY" )
5557 os .environ ["DOTENV_KEY" ] = self .PARSE_TEST_KEY
@@ -61,3 +63,19 @@ def test_vault_parsing(self):
6163 os .unsetenv ("DOTENV_KEY" )
6264 if old_dotenv_key :
6365 os .environ ["DOTENV_KEY" ] = old_dotenv_key
66+
67+ @mock .patch ("dotenv.main.find_dotenv" )
68+ def test_load_dotenv_vault (self , find_dotenv ):
69+ find_dotenv .return_value = '/some/path/'
70+ with mock .patch ('os.listdir' ) as mocked_listdir :
71+ mocked_listdir .return_value = ['.env' , '.env.vault' , 'some_file' ]
72+ path = vault .load_dotenv_vault ()
73+ self .assertEqual (path , '/some/path/.env.vault' )
74+
75+ @mock .patch ("dotenv.main.find_dotenv" )
76+ def test_load_dotenv_vault_not_there (self , find_dotenv ):
77+ find_dotenv .return_value = '/some/path/'
78+ with mock .patch ('os.listdir' ) as mocked_listdir :
79+ mocked_listdir .return_value = ['.env' , 'some_file' ]
80+ path = vault .load_dotenv_vault ()
81+ self .assertEqual (path , '/some/path/.env' )
0 commit comments