Skip to content

Commit

Permalink
Added tests for multi-container
Browse files Browse the repository at this point in the history
  • Loading branch information
byjg committed Mar 27, 2022
1 parent 82b4445 commit 50af051
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/checkout@v2

- run: pip install -r requirements.txt
- run: pytest -s tests/
- run: pytest -s tests/ -vv

Build:
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion examples/docker/docker-compose-multi-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ services:
#image: nginx
image: stenote/nginx-hostname
deploy:
replicas: 2
replicas: 2
labels:
easyhaproxy.definitions: "http"

Expand Down
29 changes: 29 additions & 0 deletions tests/expected/services-multi-containers.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
global
log stdout format raw local0 info
maxconn 2000
tune.ssl.default-dh-param 2048

defaults
log global

timeout connect 3s
timeout client 10s
timeout server 10m


frontend http_in_19901_1
bind *:19901
mode http

acl is_rule_www_helloworld_com_19901_1_1 hdr(host) -i www.helloworld.com
acl is_rule_www_helloworld_com_19901_1_2 hdr(host) -i www.helloworld.com:19901
use_backend srv_www_helloworld_com_19901_1 if is_rule_www_helloworld_com_19901_1_1 OR is_rule_www_helloworld_com_19901_1_2

backend srv_www_helloworld_com_19901_1
balance roundrobin
mode http
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
server srv-0 test_nginx.2.t5r94mjlced7m3t5orfjbowmm:80 check weight 1
server srv-1 test_nginx.1.p552hqxkdx88narjrp5kouwb2:80 check weight 1
2 changes: 2 additions & 0 deletions tests/fixtures/services-multi-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
test_nginx.2.t5r94mjlced7m3t5orfjbowmm={"easyhaproxy.definitions":"http","easyhaproxy.host.http":"www.helloworld.com","easyhaproxy.localport.http":"80","easyhaproxy.port.http":"19901","com.docker.stack.image":"stenote/nginx-hostname","com.docker.stack.namespace":"test"}
test_nginx.1.p552hqxkdx88narjrp5kouwb2={"easyhaproxy.definitions":"http","easyhaproxy.host.http":"www.helloworld.com","easyhaproxy.localport.http":"80","easyhaproxy.port.http":"19901","com.docker.stack.image":"stenote/nginx-hostname","com.docker.stack.namespace":"test"}
16 changes: 16 additions & 0 deletions tests/test_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,19 @@ def test_parser_tcp():
path = os.path.dirname(os.path.realpath(__file__))
with open(path + "/expected/services-tcp.txt", 'r') as expected_file:
assert expected_file.read() == haproxy_config

def test_parser_multi_containers():
lineList = load_fixture("services-multi-containers")

result = {
"customerrors": False
}

cfg = easymapping.HaproxyConfigGenerator(result, "/tmp")
haproxy_config = cfg.generate(lineList)

assert len(haproxy_config) > 0
path = os.path.dirname(os.path.realpath(__file__))
with open(path + "/expected/services-multi-containers.txt", 'r') as expected_file:
assert expected_file.read() == haproxy_config

0 comments on commit 50af051

Please sign in to comment.