Skip to content

Commit

Permalink
feat: implement testing env support (#288)
Browse files Browse the repository at this point in the history
* testing env support

* verify that a connection can be established with the port

* moving unit tests to a seperate folder, reseting variables set during testing

* auto importing robyn settings

* deleting the test_session fixture not needed

* changing unit tests accordingly
  • Loading branch information
Shending-Help authored Oct 7, 2022
1 parent 549723a commit 7d35952
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 5 deletions.
3 changes: 2 additions & 1 deletion integration_tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,5 @@ def dev_session():
process = spawn_process(command)
time.sleep(5)
yield
kill_process(process)
kill_process(process)

33 changes: 33 additions & 0 deletions integration_tests/test_env_populator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# from integration_tests.conftest import test_session
from robyn.env_populator import load_vars, parser
import pathlib
import os
import pytest
import requests



path = pathlib.Path(__file__).parent

#create robyn.env before test and delete it after test
@pytest.fixture
def env_file():
CONTENT = """ROBYN_PORT=8080
ROBYN_URL=127.0.1.1"""
dir = path / "test_dir"
env_file = dir / "robyn.env"
env_file.write_text(CONTENT)
yield
env_file.unlink()
os.unsetenv("PORT")

# this tests if a connection can be made to the server with the correct port imported from the env file
def test_env_population(dev_session, env_file):
dir = path / "test_dir"
env_file = dir / "robyn.env"
load_vars(variables = parser(config_path = env_file))
PORT = os.environ['ROBYN_PORT']
HOST = os.environ['ROBYN_URL']
BASE_URL = f"http://{HOST}:{PORT}"
res = requests.get(f"{BASE_URL}")
assert res.status_code == 200
6 changes: 2 additions & 4 deletions robyn/env_populator.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ def parser(config_path=CONFIG_PATH):
def load_vars(variables = None):
"""Main function"""

variables = parser()

if variables is None:
return
variables = parser()

for var in variables:
if var[0] in os.environ:
Expand All @@ -43,6 +41,6 @@ def load_vars(variables = None):
logger.info(f" Variable {var[0]} set to {var[1]}")





34 changes: 34 additions & 0 deletions unit_tests/test_env_pop.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from robyn.env_populator import load_vars, parser
import pathlib
import os
import pytest




path = pathlib.Path(__file__).parent

#create robyn.env before test and delete it after test
@pytest.fixture
def env_file():
CONTENT = """ROBYN_PORT=8080
ROBYN_URL=127.0.1.1"""
dir = path / "test_dir"
env_file = dir / "robyn.env"
env_file.write_text(CONTENT)
yield
env_file.unlink()
os.unsetenv("ROBYN_PORT")
os.unsetenv("ROBYN_URL")

def test_parser(env_file):
dir = path / "test_dir"
env_file = dir / "robyn.env"
assert list(parser(config_path = env_file)) == [['ROBYN_PORT', '8080'], ['ROBYN_URL', '127.0.1.1']]

def test_load_vars(env_file):
dir = path / "test_dir"
env_file = dir / "robyn.env"
load_vars(variables = parser(config_path = env_file))
assert os.environ['ROBYN_PORT'] == '8080'
assert os.environ['ROBYN_URL'] == '127.0.1.1'

0 comments on commit 7d35952

Please sign in to comment.