From 1b9941a1eab5c7bead61bf29ebe9295327796cfa Mon Sep 17 00:00:00 2001 From: wolfyeva Date: Wed, 18 May 2022 14:13:07 +0800 Subject: [PATCH 1/2] test: add parametrize tests --- tests/test_parse_file.py | 238 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 224 insertions(+), 14 deletions(-) diff --git a/tests/test_parse_file.py b/tests/test_parse_file.py index 6019897..5f27672 100644 --- a/tests/test_parse_file.py +++ b/tests/test_parse_file.py @@ -3,7 +3,7 @@ from compose_viz.parser import Parser from compose_viz.compose import Compose from compose_viz.service import Service -@pytest.mark.parametrize("test_input,expected",[ +@pytest.mark.parametrize('test_input,expected',[ ('tests/in/000001.yaml',Compose([ Service( name='frontend', @@ -25,7 +25,6 @@ from compose_viz.service import Service Service( name='base', image='busybox', - user='root', ), Service( name='common', @@ -34,54 +33,265 @@ from compose_viz.service import Service ), Service( name='cli', - extends='common' + extends='common', + ), + ])), + ('tests/in/000011.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + extends=['frontend'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], + extends=['frontend'], ), ])), ('tests/in/000100.yaml',Compose([ - #version='3.9' Service( build='.', - ports=['8000:5000'] + ports=['8000:5000'], ), Service( name='redis', image='redis:alpine', ), ])), + ('tests/in/000101.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + ports=['8000:5000'] + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + ports='8000:5001', + networks=['admin'], + ), + Service( + name='backend', + image='awesome/backend', + ports='8000:5010', + networks=['back-tier', 'admin'], + ), + ])), + ('tests/in/000110.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + ports=['8000:5000'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + extends=['frontend'], + ), + Service( + name='backend', + image='awesome/backend', + extends=['frontend'], + ports=['8000:5001'], + ), + ])), + ('tests/in/000111.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + ports=['8000:5000'] + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + extends=['frontend'], + ), + Service( + name='backend', + image='awesome/backend', + ports=['8000:5001'], + networks=['back-tier', 'admin'], + extends=['frontend'], + ), + ])), ('tests/in/001000.yaml',Compose([ Service( name='web', build='.', - depends_on=['db','redis'] + depends_on=['db','redis'], ), Service( name='redis', - image='redis' + image='redis', ), Service( name='db', - image='postgres' + image='postgres', + ), + ])), + ('tests/in/001001.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + depends_on=['monitoring','backend'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], + ), + ])), + ('tests/in/001010.yaml',Compose([ + Service( + name='web', + build='.', + depends_on=['db','redis'], + extends=['redis'] + ), + Service( + name='redis', + image='redis', + ), + Service( + name='db', + image='postgres', + ), + ])), + ('tests/in/001011.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + depends_on=['monitoring','backend'], + extends=['backend'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], + ), + ])), + ('tests/in/001100.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + ports=['8000:5000'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + depends_on=['backend'], + ports=['8000:5010'], + ), + Service( + name='backend', + image='awesome/backend', + ports=['8000:5001'], + ), + ])), + ('tests/in/001101.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + depends_on=['backend'], + ports=['8000:5010'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], + ), + ])), + ('tests/in/001110.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + ports=['8000:5000'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + depends_on=['backend'], + extends=['frontend'], + ports=['8000:5010'], + ), + Service( + name='backend', + image='awesome/backend', + ports=['8000:5001'], + ), + ])), + ('tests/in/001111.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + depends_on=['backend'], + extends=['frontend'], + ports=['8000:5010'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], ), ])), ('tests/in/010000.yaml',Compose([ Service( name='backend', image='awesome/backend', - volumes=['db-data'] - ) + volumes=['db-data'], + ), ])), + + + + + ('tests/in/100000.yaml',Compose([ Service( name='web', build='.', - links=['db:database'] + links=['db:database'], ), Service( name='db', - image='postgres' - ) + image='postgres', + ), ])), - ]) +]) def test_parse_file(test_input, expected): parser = Parser() From f07add890502c692f144689f6c0478fc6577e120 Mon Sep 17 00:00:00 2001 From: wolfyeva Date: Wed, 18 May 2022 14:21:51 +0800 Subject: [PATCH 2/2] test: add parametrize tests --- tests/test_parse_file.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/tests/test_parse_file.py b/tests/test_parse_file.py index 5f27672..9ff4253 100644 --- a/tests/test_parse_file.py +++ b/tests/test_parse_file.py @@ -29,11 +29,11 @@ from compose_viz.service import Service Service( name='common', image='busybox', - extends='base' + extends=['base'], ), Service( name='cli', - extends='common', + extends=['common'], ), ])), ('tests/in/000011.yaml',Compose([ @@ -57,7 +57,6 @@ from compose_viz.service import Service ])), ('tests/in/000100.yaml',Compose([ Service( - build='.', ports=['8000:5000'], ), Service( @@ -69,19 +68,19 @@ from compose_viz.service import Service Service( name='frontend', image='awesome/webapp', - ports=['8000:5000'] + ports=['8000:5000'], networks=['front-tier', 'back-tier'], ), Service( name='monitoring', image='awesome/monitoring', - ports='8000:5001', + ports=['8000:5001'], networks=['admin'], ), Service( name='backend', image='awesome/backend', - ports='8000:5010', + ports=['8000:5010'], networks=['back-tier', 'admin'], ), ])), @@ -127,7 +126,6 @@ from compose_viz.service import Service ('tests/in/001000.yaml',Compose([ Service( name='web', - build='.', depends_on=['db','redis'], ), Service( @@ -160,7 +158,6 @@ from compose_viz.service import Service ('tests/in/001010.yaml',Compose([ Service( name='web', - build='.', depends_on=['db','redis'], extends=['redis'] ), @@ -275,7 +272,24 @@ from compose_viz.service import Service volumes=['db-data'], ), ])), - + ('tests/in/010001.yaml',Compose([ + Service( + name='frontend', + image='awesome/webapp', + networks=['front-tier', 'back-tier'], + ), + Service( + name='monitoring', + image='awesome/monitoring', + networks=['admin'], + ), + Service( + name='backend', + image='awesome/backend', + networks=['back-tier', 'admin'], + volumes=['db-data'], + ), + ])), @@ -283,7 +297,6 @@ from compose_viz.service import Service ('tests/in/100000.yaml',Compose([ Service( name='web', - build='.', links=['db:database'], ), Service(