New testcases added
This commit is contained in:
committed by
Michael McGuinness
parent
b3079e8f19
commit
399baad22f
@@ -9,6 +9,12 @@ pytest-html = "*"
|
||||
pyyaml = "*"
|
||||
loguru = "*"
|
||||
selenium = "*"
|
||||
allure-pytest = "*"
|
||||
pandas = "*"
|
||||
openpyxl = "*"
|
||||
boto3 = "*"
|
||||
pysnowflake = "*"
|
||||
snowflake-connector-python = "*"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
|
||||
Generated
+463
-25
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "f77c7c7943f58908fd2ad821aa5c106631c28e6aeaec3e3dfdc163c7a432733f"
|
||||
"sha256": "5e35a15ee081cc486c1aec46265ff8fb402e945de85ce6433e7b28534f9f2512"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@@ -16,6 +16,29 @@
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"allure-pytest": {
|
||||
"hashes": [
|
||||
"sha256:0ef8e1790c44a988db6b83c4d4f5e91451e2c4c8ea10601dfa88528d23afcf6e",
|
||||
"sha256:94130bac32964b78058e62cf4b815ad97a5ac82a065e6dd2d43abac2be7640fc"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.13.5"
|
||||
},
|
||||
"allure-python-commons": {
|
||||
"hashes": [
|
||||
"sha256:8b0e837b6e32d810adec563f49e1d04127a5b6770e0232065b7cb09b9953980d",
|
||||
"sha256:a232e7955811f988e49a4c1dd6c16cce7e9b81d0ea0422b1e5654d3254e2caf3"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.13.5"
|
||||
},
|
||||
"asn1crypto": {
|
||||
"hashes": [
|
||||
"sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c",
|
||||
"sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67"
|
||||
],
|
||||
"version": "==1.5.1"
|
||||
},
|
||||
"attrs": {
|
||||
"hashes": [
|
||||
"sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30",
|
||||
@@ -24,13 +47,30 @@
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==23.2.0"
|
||||
},
|
||||
"boto3": {
|
||||
"hashes": [
|
||||
"sha256:2058397f0a92c301e3116e9e65fbbc70ea49270c250882d65043d19b7c6e2d17",
|
||||
"sha256:d63d36e5a34533ba69188d56f96da132730d5e9932c4e11c02d79319cd1afcec"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==1.34.148"
|
||||
},
|
||||
"botocore": {
|
||||
"hashes": [
|
||||
"sha256:258dd95570b43db9fa21cce5426eabaea5867e3a61224157650448b5019d1bbd",
|
||||
"sha256:9e09428b0bc4d0c1cf5e368dd6ab18eabf6047304060f8b5dd8391677cfe00e6"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==1.34.148"
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f",
|
||||
"sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"
|
||||
"sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b",
|
||||
"sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2024.2.2"
|
||||
"version": "==2024.7.4"
|
||||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
@@ -87,9 +127,105 @@
|
||||
"sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956",
|
||||
"sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"
|
||||
],
|
||||
"markers": "os_name == 'nt' and implementation_name != 'pypy'",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
"sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027",
|
||||
"sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087",
|
||||
"sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786",
|
||||
"sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8",
|
||||
"sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09",
|
||||
"sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185",
|
||||
"sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574",
|
||||
"sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e",
|
||||
"sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519",
|
||||
"sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898",
|
||||
"sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269",
|
||||
"sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3",
|
||||
"sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f",
|
||||
"sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6",
|
||||
"sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8",
|
||||
"sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a",
|
||||
"sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73",
|
||||
"sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc",
|
||||
"sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714",
|
||||
"sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2",
|
||||
"sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc",
|
||||
"sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce",
|
||||
"sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d",
|
||||
"sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e",
|
||||
"sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6",
|
||||
"sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269",
|
||||
"sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96",
|
||||
"sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d",
|
||||
"sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a",
|
||||
"sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4",
|
||||
"sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77",
|
||||
"sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d",
|
||||
"sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0",
|
||||
"sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed",
|
||||
"sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068",
|
||||
"sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac",
|
||||
"sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25",
|
||||
"sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8",
|
||||
"sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab",
|
||||
"sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26",
|
||||
"sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2",
|
||||
"sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db",
|
||||
"sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f",
|
||||
"sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5",
|
||||
"sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99",
|
||||
"sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c",
|
||||
"sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d",
|
||||
"sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811",
|
||||
"sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa",
|
||||
"sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a",
|
||||
"sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03",
|
||||
"sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b",
|
||||
"sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04",
|
||||
"sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c",
|
||||
"sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001",
|
||||
"sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458",
|
||||
"sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389",
|
||||
"sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99",
|
||||
"sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985",
|
||||
"sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537",
|
||||
"sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238",
|
||||
"sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f",
|
||||
"sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d",
|
||||
"sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796",
|
||||
"sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a",
|
||||
"sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143",
|
||||
"sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8",
|
||||
"sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c",
|
||||
"sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5",
|
||||
"sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5",
|
||||
"sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711",
|
||||
"sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4",
|
||||
"sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6",
|
||||
"sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c",
|
||||
"sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7",
|
||||
"sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4",
|
||||
"sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b",
|
||||
"sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae",
|
||||
"sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12",
|
||||
"sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c",
|
||||
"sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae",
|
||||
"sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8",
|
||||
"sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887",
|
||||
"sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b",
|
||||
"sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4",
|
||||
"sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f",
|
||||
"sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5",
|
||||
"sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33",
|
||||
"sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519",
|
||||
"sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"
|
||||
],
|
||||
"markers": "python_full_version >= '3.7.0'",
|
||||
"version": "==3.3.2"
|
||||
},
|
||||
"colorama": {
|
||||
"hashes": [
|
||||
"sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44",
|
||||
@@ -98,6 +234,60 @@
|
||||
"markers": "sys_platform == 'win32'",
|
||||
"version": "==0.4.6"
|
||||
},
|
||||
"cryptography": {
|
||||
"hashes": [
|
||||
"sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad",
|
||||
"sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583",
|
||||
"sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b",
|
||||
"sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c",
|
||||
"sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1",
|
||||
"sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648",
|
||||
"sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949",
|
||||
"sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba",
|
||||
"sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c",
|
||||
"sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9",
|
||||
"sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d",
|
||||
"sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c",
|
||||
"sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e",
|
||||
"sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2",
|
||||
"sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d",
|
||||
"sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7",
|
||||
"sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70",
|
||||
"sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2",
|
||||
"sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7",
|
||||
"sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14",
|
||||
"sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe",
|
||||
"sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e",
|
||||
"sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71",
|
||||
"sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961",
|
||||
"sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7",
|
||||
"sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c",
|
||||
"sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28",
|
||||
"sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842",
|
||||
"sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902",
|
||||
"sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801",
|
||||
"sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a",
|
||||
"sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==42.0.8"
|
||||
},
|
||||
"et-xmlfile": {
|
||||
"hashes": [
|
||||
"sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c",
|
||||
"sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"filelock": {
|
||||
"hashes": [
|
||||
"sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb",
|
||||
"sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.15.4"
|
||||
},
|
||||
"h11": {
|
||||
"hashes": [
|
||||
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
|
||||
@@ -130,6 +320,14 @@
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.1.4"
|
||||
},
|
||||
"jmespath": {
|
||||
"hashes": [
|
||||
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
|
||||
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.0.1"
|
||||
},
|
||||
"loguru": {
|
||||
"hashes": [
|
||||
"sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb",
|
||||
@@ -205,6 +403,66 @@
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.1.5"
|
||||
},
|
||||
"numpy": {
|
||||
"hashes": [
|
||||
"sha256:08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8",
|
||||
"sha256:0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134",
|
||||
"sha256:12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d",
|
||||
"sha256:15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67",
|
||||
"sha256:173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf",
|
||||
"sha256:1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02",
|
||||
"sha256:1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59",
|
||||
"sha256:1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55",
|
||||
"sha256:24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c",
|
||||
"sha256:2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f",
|
||||
"sha256:36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4",
|
||||
"sha256:3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018",
|
||||
"sha256:4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015",
|
||||
"sha256:4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9",
|
||||
"sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3",
|
||||
"sha256:529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8",
|
||||
"sha256:5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe",
|
||||
"sha256:5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1",
|
||||
"sha256:61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f",
|
||||
"sha256:6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a",
|
||||
"sha256:69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42",
|
||||
"sha256:6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac",
|
||||
"sha256:6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e",
|
||||
"sha256:72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06",
|
||||
"sha256:75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268",
|
||||
"sha256:7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1",
|
||||
"sha256:7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4",
|
||||
"sha256:81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868",
|
||||
"sha256:8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26",
|
||||
"sha256:8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef",
|
||||
"sha256:99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b",
|
||||
"sha256:9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82",
|
||||
"sha256:a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343",
|
||||
"sha256:a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b",
|
||||
"sha256:b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7",
|
||||
"sha256:bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171",
|
||||
"sha256:bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414",
|
||||
"sha256:cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7",
|
||||
"sha256:e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87",
|
||||
"sha256:e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368",
|
||||
"sha256:ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587",
|
||||
"sha256:eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990",
|
||||
"sha256:ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c",
|
||||
"sha256:f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101",
|
||||
"sha256:f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4"
|
||||
],
|
||||
"markers": "python_version >= '3.12'",
|
||||
"version": "==2.0.1"
|
||||
},
|
||||
"openpyxl": {
|
||||
"hashes": [
|
||||
"sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2",
|
||||
"sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.1.5"
|
||||
},
|
||||
"outcome": {
|
||||
"hashes": [
|
||||
"sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8",
|
||||
@@ -215,11 +473,55 @@
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
"sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
|
||||
"sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"
|
||||
"sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002",
|
||||
"sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==24.0"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==24.1"
|
||||
},
|
||||
"pandas": {
|
||||
"hashes": [
|
||||
"sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863",
|
||||
"sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2",
|
||||
"sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1",
|
||||
"sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad",
|
||||
"sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db",
|
||||
"sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76",
|
||||
"sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51",
|
||||
"sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32",
|
||||
"sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08",
|
||||
"sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b",
|
||||
"sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4",
|
||||
"sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921",
|
||||
"sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288",
|
||||
"sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee",
|
||||
"sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0",
|
||||
"sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24",
|
||||
"sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99",
|
||||
"sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151",
|
||||
"sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd",
|
||||
"sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce",
|
||||
"sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57",
|
||||
"sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef",
|
||||
"sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54",
|
||||
"sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a",
|
||||
"sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238",
|
||||
"sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23",
|
||||
"sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772",
|
||||
"sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce",
|
||||
"sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.9'",
|
||||
"version": "==2.2.2"
|
||||
},
|
||||
"platformdirs": {
|
||||
"hashes": [
|
||||
"sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee",
|
||||
"sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==4.2.2"
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
@@ -237,6 +539,29 @@
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==2.22"
|
||||
},
|
||||
"pyjwt": {
|
||||
"hashes": [
|
||||
"sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de",
|
||||
"sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.8.0"
|
||||
},
|
||||
"pyopenssl": {
|
||||
"hashes": [
|
||||
"sha256:4247f0dbe3748d560dcbb2ff3ea01af0f9a1a001ef5f7c4c647956ed8cbf0e95",
|
||||
"sha256:967d5719b12b243588573f39b0c677637145c7a1ffedcd495a487e58177fbb8d"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==24.2.1"
|
||||
},
|
||||
"pysnowflake": {
|
||||
"hashes": [
|
||||
"sha256:47ed6b65c2b758d3930f0df61f7851d357e85f7d8f96aa08d9525e34e36e4b0d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.1.3"
|
||||
},
|
||||
"pysocks": {
|
||||
"hashes": [
|
||||
"sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299",
|
||||
@@ -247,12 +572,12 @@
|
||||
},
|
||||
"pytest": {
|
||||
"hashes": [
|
||||
"sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233",
|
||||
"sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"
|
||||
"sha256:7e8e5c5abd6e93cb1cc151f23e57adc31fcf8cfd2a3ff2da63e23f732de35db6",
|
||||
"sha256:e9600ccf4f563976e2c99fa02c7624ab938296551f280835ee6516df8bc4ae8c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==8.2.0"
|
||||
"version": "==8.3.1"
|
||||
},
|
||||
"pytest-html": {
|
||||
"hashes": [
|
||||
@@ -271,6 +596,21 @@
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.1.1"
|
||||
},
|
||||
"python-dateutil": {
|
||||
"hashes": [
|
||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.9.0.post0"
|
||||
},
|
||||
"pytz": {
|
||||
"hashes": [
|
||||
"sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812",
|
||||
"sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"
|
||||
],
|
||||
"version": "==2024.1"
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
|
||||
@@ -329,14 +669,38 @@
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==6.0.1"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
|
||||
"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==2.32.3"
|
||||
},
|
||||
"s3transfer": {
|
||||
"hashes": [
|
||||
"sha256:0711534e9356d3cc692fdde846b4a1e4b0cb6519971860796e6bc4c7aea00ef6",
|
||||
"sha256:eca1c20de70a39daee580aef4986996620f365c4e0fda6a86100231d62f1bf69"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==0.10.2"
|
||||
},
|
||||
"selenium": {
|
||||
"hashes": [
|
||||
"sha256:0bd564ee166980d419a8aaf4ac00289bc152afcf2eadca5efe8c8e36711853fd",
|
||||
"sha256:b1d0c33b38ca27d0499183e48e1dd09ff26973481f5d3ef2983073813ae6588d"
|
||||
"sha256:128d099e66284437e7128d2279176ec7a06e6ec7426e167f5d34987166bd8f46",
|
||||
"sha256:3a8d9f23dc636bd3840dd56f00c2739e32ec0c1e34a821dd553e15babef24477"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==4.20.0"
|
||||
"version": "==4.23.1"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"sniffio": {
|
||||
"hashes": [
|
||||
@@ -346,6 +710,39 @@
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.3.1"
|
||||
},
|
||||
"snowflake-connector-python": {
|
||||
"hashes": [
|
||||
"sha256:019b8a61e5af689451d502df2af8793fc6f20b5b0a3548fd8ad03aa8b62e7f2d",
|
||||
"sha256:1aa34aec0f96d7fc7271e38c68ee0d58529875d05e084afb4fc8f09b694643c4",
|
||||
"sha256:21cbaef51fbed719de01155079df3d004cee963d3723c1ebdb8980923f893e04",
|
||||
"sha256:2735e16fffded0900f7484030613b79699afc1ed4e5cff086bd139a0ce965594",
|
||||
"sha256:320e0b6f8cd8556e19c8b87249c931700238b2958313afc7a33108d67da87d82",
|
||||
"sha256:368e46f1d079056e028bfe8f7171fabef62eb00bcf590df294220b7a5be5d56c",
|
||||
"sha256:3c06bfba4a329fd4ec3feba0ada7b31f86ed4e156a9766bced52c2814d001fd2",
|
||||
"sha256:45f9b9678694f10571c1f7ec7d0d741663ad0ff61a71ae53aa71be47faa19978",
|
||||
"sha256:564752d22accc43351b50f676b03aa9f2b441be2641e3cf9a7790faf54eff210",
|
||||
"sha256:60675fd83022daef40541d717d006695149c512b283e35741b61a4f48ba537e9",
|
||||
"sha256:6a0cc03fb44808f3ddc464ee272f141564c8daea14475e1df5c2a54c7acb2ddf",
|
||||
"sha256:6e245b84c164433454ce49d78e6bcf5c2e62e25657358bf34ab533166e588f80",
|
||||
"sha256:85a5565b8813d164f33f32a825a70443008fe009aae050307f128a1ca892f9ed",
|
||||
"sha256:880e6e95171cd7374a86da14132fdfc4b622665f134561f4d43e3f35bdacf67d",
|
||||
"sha256:8d33d845e4c68d33e73a9f64100b53342c18607ac25c4f2a27dbed2078078d12",
|
||||
"sha256:a567b937b0179d1e95a8ad7200943d286f38d0e76df90af10f747ed9149dd681",
|
||||
"sha256:a92c9a19a23033df709e63baa6ccdf6eff65210143a8c9c67a0a24bba862034b",
|
||||
"sha256:acf84b07dd2f22adfaa7d52ccd6be1722bd5a0e2b1a9b08681c3851bea05768f",
|
||||
"sha256:c06a8e2e12284b4a4d462d0073fb4983e90ad2d6a2382926f9e3409f06c81d0b",
|
||||
"sha256:c1d43bfaa885aab712f14f9ced232abe5023adfca7fbf7a7a0768a162523e9d6",
|
||||
"sha256:c2bbdbbb028d7d542815ed68b28200728aa6707b9354e3a447fdc8c7a34bcdce",
|
||||
"sha256:c2f621030b26a220711c64518e00059736b79c1da53afa6a8ce68b31c1941014",
|
||||
"sha256:c86d4a7d49f42ea0bb34218cb49c401ba995892abcfb509ea749cd0a74a8b28a",
|
||||
"sha256:dc333fcfc383a8cab8bd7e890a7c76703e26598925a05954c75d2c50bff06071",
|
||||
"sha256:edf28df8be24845cfcec653b160d2b8c048d5cb0c85b051f4957f0b0aae1e493",
|
||||
"sha256:f27d6a1a180832c7b551d38df1094a70fb79917f90c57893b9ce7e219362f6c1"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.12.0"
|
||||
},
|
||||
"sortedcontainers": {
|
||||
"hashes": [
|
||||
"sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88",
|
||||
@@ -353,13 +750,38 @@
|
||||
],
|
||||
"version": "==2.4.0"
|
||||
},
|
||||
"trio": {
|
||||
"tomlkit": {
|
||||
"hashes": [
|
||||
"sha256:9b41f5993ad2c0e5f62d0acca320ec657fdb6b2a2c22b8c7aed6caf154475c4e",
|
||||
"sha256:e6458efe29cc543e557a91e614e2b51710eba2961669329ce9c862d50c6e8e81"
|
||||
"sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72",
|
||||
"sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==0.25.0"
|
||||
"version": "==0.13.0"
|
||||
},
|
||||
"tornado": {
|
||||
"hashes": [
|
||||
"sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8",
|
||||
"sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f",
|
||||
"sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4",
|
||||
"sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3",
|
||||
"sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14",
|
||||
"sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842",
|
||||
"sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9",
|
||||
"sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698",
|
||||
"sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7",
|
||||
"sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d",
|
||||
"sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==6.4.1"
|
||||
},
|
||||
"trio": {
|
||||
"hashes": [
|
||||
"sha256:67c5ec3265dd4abc7b1d1ab9ca4fe4c25b896f9c93dac73713778adab487f9c4",
|
||||
"sha256:bb9c1b259591af941fccfbabbdc65bc7ed764bd2db76428454c894cd5e3d2032"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==0.26.0"
|
||||
},
|
||||
"trio-websocket": {
|
||||
"hashes": [
|
||||
@@ -371,22 +793,38 @@
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0",
|
||||
"sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"
|
||||
"sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
|
||||
"sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==4.11.0"
|
||||
"version": "==4.12.2"
|
||||
},
|
||||
"tzdata": {
|
||||
"hashes": [
|
||||
"sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd",
|
||||
"sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"
|
||||
],
|
||||
"markers": "python_version >= '2'",
|
||||
"version": "==2024.1"
|
||||
},
|
||||
"urllib3": {
|
||||
"extras": [
|
||||
"socks"
|
||||
],
|
||||
"hashes": [
|
||||
"sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d",
|
||||
"sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"
|
||||
"sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472",
|
||||
"sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==2.2.1"
|
||||
"version": "==2.2.2"
|
||||
},
|
||||
"websocket-client": {
|
||||
"hashes": [
|
||||
"sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526",
|
||||
"sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==1.8.0"
|
||||
},
|
||||
"win32-setctime": {
|
||||
"hashes": [
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import boto3
|
||||
from botocore.exceptions import ClientError
|
||||
import snowflake.connector
|
||||
|
||||
|
||||
def get_files(s3_client, path, client_bucket, batch_id):
|
||||
batch_objects = s3_client.list_objects_v2(Bucket=client_bucket,
|
||||
Prefix=path+"/"+batch_id,
|
||||
Delimiter='/')
|
||||
file_list = []
|
||||
for prefix in batch_objects['CommonPrefixes']:
|
||||
file_list.append(prefix['Prefix'][:-1].split('/')[-1])
|
||||
file_count = len(file_list)
|
||||
return file_count, file_list
|
||||
|
||||
|
||||
def get_s3_client():
|
||||
region_name = "us-east-2"
|
||||
s3_client = boto3.client('s3',
|
||||
region_name=region_name)
|
||||
return s3_client
|
||||
|
||||
|
||||
def get_snowflake_conn(schema):
|
||||
secret = ''#get_secret()
|
||||
secret_dict = eval(secret)
|
||||
conn = snowflake.connector.connect(
|
||||
user=secret_dict['user'],
|
||||
password=secret_dict['password'],
|
||||
account=secret_dict['account_alias'],
|
||||
warehouse=secret_dict['warehouse'],
|
||||
database=secret_dict['database'],
|
||||
schema=schema
|
||||
)
|
||||
return conn
|
||||
@@ -1,21 +1,33 @@
|
||||
environment:
|
||||
url_interface_0: "https://doczy.aarete.com:8500/"
|
||||
url_interface_1: "https://doczy.aarete.com:8501/"
|
||||
username: "ahinge@aarete.com"
|
||||
password: ""
|
||||
contract_files_path: "C:\\Ankit\\Marked Up PDFs\\test\\"
|
||||
contract_files:
|
||||
- '050540697 Deepak Nanda 2017 PHSP MU1.pdf'
|
||||
- '2014-01-01 United Health Centers San Joaquin AMD MU (1).pdf'
|
||||
- '2019 06 01 Dr Raul Rivera & Associates (Amend 1)_MU.pdf'
|
||||
- 'Bay Ridge Medical Imaging Universal (113045841) MU.pdf'
|
||||
- 'Baz Allergy Asthma & Sinus_MU.pdf'
|
||||
- 'BoilerplateAnc_Boro Park Obstetrics & Gynecology PC - Amendment 11.2.12_MU.pdf'
|
||||
- 'Boilerplate_Prof_Premier Health Specialists Inc Third Amendment_A.4_20160101_MU.pdf'
|
||||
- 'Boilerplate_TX Amendment Mission Health Network effective_040114 MU.pdf'
|
||||
- 'Custom_Prof_Anna Suponya MD PC - Agreement Provider Signed_MU (1).pdf'
|
||||
- 'Custom_TX - MP AMENDMENT - MISSION HEALTH NETWORK - MU.pdf'
|
||||
- 'Delaware First Health_First State Homecare Agency_212260_7 MU.pdf'
|
||||
- 'ICMProviderAgreement_AlisonUnitisLPCMH_227710_5.pdf'
|
||||
- 'Molina Healthcare of Texas, Inc. Amendment 4 - HIX ACA__EFF 01012016_MU.pdf'
|
||||
- 'Prof1_ICM135705_ICMProviderAgreement_135705 IPA of NJ MU.pdf'
|
||||
DEV:
|
||||
platform: 'firefox'
|
||||
url_interface_0: "https://doczydev.aarete.com:8500/"
|
||||
url_interface_1: "https://doczydev.aarete.com:8501/"
|
||||
url_interface_2: "https://doczydev.aarete.com:8502/"
|
||||
username: "ahinge@aarete.com"
|
||||
password: ""
|
||||
timeout: 20
|
||||
contract_files_path: "C:\\Ankit\\test\\"
|
||||
data_file_path: 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
|
||||
UAT:
|
||||
platform: 'firefox'
|
||||
url_interface_0: "https://doczyuat.aarete.com:8500/"
|
||||
url_interface_1: "https://doczyuat.aarete.com:8501/"
|
||||
url_interface_2: "https://doczyuat.aarete.com:8502/"
|
||||
username: "ahinge@aarete.com"
|
||||
password: ""
|
||||
timeout: 20
|
||||
contract_files_path: "C:\\Ankit\\test\\"
|
||||
data_file_path: 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
|
||||
PROD:
|
||||
platform: 'firefox'
|
||||
url_interface_0: "https://doczy.aarete.com:8500/"
|
||||
url_interface_1: "https://doczy.aarete.com:8501/"
|
||||
url_interface_2: "https://doczy.aarete.com:8502/"
|
||||
username: "ahinge@aarete.com"
|
||||
password: ""
|
||||
timeout: 20
|
||||
contract_files_path: "C:\\Ankit\\test\\"
|
||||
data_file_path: 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
from utils.element_related_methods import get_clickable_element, get_invisible_element, get_element
|
||||
|
||||
|
||||
class Interface_0_elements:
|
||||
client_name_dropdown_xpath = '//div[@data-testid="stSelectbox"]'
|
||||
client_list_xpath = '//li'
|
||||
file_input_xpath = "//input[@type='file']"
|
||||
file_input_progress_xpath = '//div[@role="progressbar"]'#'//div[@class="stFileUploaderFileName"]'
|
||||
create_batch_btn_xpath = "//div[@data-testid='stButton']/button[@data-testid='baseButton-secondary']"
|
||||
p_element_xpath = "//div[@data-testid='stCodeBlock']/pre/div/code/span"
|
||||
error_xpath = "//div[@data-testid='stNotificationContentError']/div/div/p"
|
||||
|
||||
def get_client_name_dropdown(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.client_name_dropdown_xpath)
|
||||
|
||||
def get_client_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.client_list_xpath)
|
||||
|
||||
def get_file_input(self, driver, config):
|
||||
return get_invisible_element(driver, config, By.XPATH, self.file_input_xpath)
|
||||
|
||||
def get_file_input_progress(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.file_input_progress_xpath)
|
||||
|
||||
def get_create_batch_btn(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.create_batch_btn_xpath)
|
||||
|
||||
def get_p_element(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.p_element_xpath)
|
||||
|
||||
def get_error_toast(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.error_xpath)
|
||||
@@ -0,0 +1,46 @@
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
from utils.element_related_methods import get_clickable_element, get_invisible_element, get_element
|
||||
|
||||
|
||||
class Interface_1_elements:
|
||||
client_name_dropdown_xpath = '//div[@data-testid="stSelectbox"]'
|
||||
client_list_xpath = '//li'
|
||||
batch_id_xpath = '(//div[@data-testid="stSelectbox"])[2]'
|
||||
batch_id_list_xpath = '//li'
|
||||
checkbox_list_xpath = "//div[@data-testid='stCheckbox']"
|
||||
read_the_contracts_from_path_btn_xpath = "//button[.//p[text()='Read the contracts from Path']]"
|
||||
result_table_xpath = "//table[@aria-colcount='9']"
|
||||
table_rows_xpath = ".//tbody/tr"
|
||||
run_doczy_ai_pipeline_btn_xpath = "//button[.//p[text()='Run Doczy.AI Pipeline']]"
|
||||
error_xpath = "//div[@data-testid='stNotificationContentError']/div/div/p"
|
||||
|
||||
def get_client_name_dropdown(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.client_name_dropdown_xpath)
|
||||
|
||||
def get_client_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.client_list_xpath)
|
||||
|
||||
def get_batch_id(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.batch_id_xpath)
|
||||
|
||||
def get_batch_id_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.batch_id_list_xpath)
|
||||
|
||||
def get_checkbox_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.checkbox_list_xpath)
|
||||
|
||||
def get_read_the_contracts_from_path_btn(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.read_the_contracts_from_path_btn_xpath)
|
||||
|
||||
def get_result_table(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.result_table_xpath)
|
||||
|
||||
def get_table_rows(self, result_table):
|
||||
return result_table.find_elements(By.XPATH, self.table_rows_xpath)
|
||||
|
||||
def get_run_doczy_ai_pipeline_btn(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.run_doczy_ai_pipeline_btn_xpath)
|
||||
|
||||
def get_error(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.error_xpath)
|
||||
@@ -0,0 +1,58 @@
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
from utils.element_related_methods import get_clickable_element, get_invisible_element, get_element
|
||||
|
||||
|
||||
class Interface_2_elements:
|
||||
client_name_dropdown_xpath = '//div[@data-testid="stSelectbox"]'
|
||||
client_list_xpath = '//li'
|
||||
batch_id_xpath = '(//div[@data-testid="stSelectbox"])[2]'
|
||||
batch_id_list_xpath = '//li'
|
||||
contract_name_xpath = '(//div[@data-testid="stSelectbox"])[3]'
|
||||
contract_name_list_xpath = '//li'
|
||||
field_group_xpath = '(//div[@data-testid="stSelectbox"])[4]'
|
||||
field_group_list_xpath = '//li'
|
||||
show_result_btn_xpath = "//button[.//p[text()='Show Results']]"
|
||||
result_table_xpath = "//table[@aria-colcount='9']"
|
||||
table_rows_xpath = ".//tbody/tr"
|
||||
kickoff_database_btn_xpath = "//button[.//p[text()='Kickoff Database Integration']]"
|
||||
error_xpath = "//div[@data-testid='stNotificationContentError']/div/div/p"
|
||||
|
||||
def get_client_name_dropdown(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.client_name_dropdown_xpath)
|
||||
|
||||
def get_client_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.client_list_xpath)
|
||||
|
||||
def get_batch_id(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.batch_id_xpath)
|
||||
|
||||
def get_batch_id_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.batch_id_list_xpath)
|
||||
|
||||
def get_contract_name(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.contract_name_xpath)
|
||||
|
||||
def get_contract_name_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.contract_name_list_xpath)
|
||||
|
||||
def get_field_group(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.field_group_xpath)
|
||||
|
||||
def get_field_group_list(self, driver):
|
||||
return driver.find_elements(By.XPATH, self.field_group_list_xpath)
|
||||
|
||||
def get_show_result_btn(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.show_result_btn_xpath)
|
||||
|
||||
def get_result_table(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.result_table_xpath)
|
||||
|
||||
def get_table_rows(self, result_table):
|
||||
return result_table.find_elements(By.XPATH, self.table_rows_xpath)
|
||||
|
||||
def get_kickoff_database_btn(self, driver, config):
|
||||
return get_clickable_element(driver, config, By.XPATH, self.kickoff_database_btn_xpath)
|
||||
|
||||
def get_error_toast(self, driver, config):
|
||||
return get_element(driver, config, By.XPATH, self.error_xpath)
|
||||
@@ -2,59 +2,72 @@ import random
|
||||
import time
|
||||
|
||||
from selenium.common import InvalidArgumentException
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
from utils.element_related_methods import get_clickable_element, get_element, get_invisible_element
|
||||
from elements.interface_0_elements import Interface_0_elements
|
||||
from utils.logger import get_logger
|
||||
from utils.reader import read_files
|
||||
|
||||
|
||||
class Interface_0:
|
||||
class Interface_0(Interface_0_elements):
|
||||
logger = get_logger()
|
||||
p_element = None
|
||||
|
||||
def __init__(self, driver):
|
||||
def __init__(self, driver, config):
|
||||
self.driver = driver
|
||||
self.client_name_dropdown = get_clickable_element(driver, By.XPATH,
|
||||
'/html/body/div/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div')
|
||||
self.config = config
|
||||
|
||||
def select_client(self):
|
||||
self.client_name_dropdown.click()
|
||||
client_list = self.driver.find_elements(By.XPATH, "//li")
|
||||
def select_client(self, client_name=''):
|
||||
client_name_dropdown = super().get_client_name_dropdown(self.driver, self.config)
|
||||
client_name_dropdown.click()
|
||||
client_list = super().get_client_list(self.driver)
|
||||
assert len(client_list) > 0
|
||||
random_number = random.randint(1, len(client_list) - 1)
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected Client Name: {client_list[random_number].text}")
|
||||
client_name = client_list[random_number].text
|
||||
client_list[random_number].click()
|
||||
time.sleep(5)
|
||||
if client_name == '':
|
||||
random_number = random.randint(0, len(client_list) - 1)
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected Client Name: {client_list[random_number].text}")
|
||||
client_name = client_list[random_number].text
|
||||
client_list[random_number].click()
|
||||
else:
|
||||
for client in client_list:
|
||||
if client_name == client.text:
|
||||
client.click()
|
||||
self.logger.info(f"Selected Client Name: {client_name}")
|
||||
break
|
||||
time.sleep(20)
|
||||
return client_name
|
||||
|
||||
def upload_files(self, config):
|
||||
# file_input = self.driver.find_element(By.XPATH, "//input[@type='file']")
|
||||
def upload_files(self, client_name):
|
||||
file_list = ""
|
||||
try:
|
||||
file_input = get_invisible_element(self.driver, By.XPATH, "//input[@type='file']")
|
||||
contract_files = config["contract_files"]
|
||||
random_count = random.randint(1, len(contract_files))
|
||||
random_elements = random.sample(contract_files, random_count)
|
||||
contracts = f'\n{config['contract_files_path']}'.join(random_elements)
|
||||
self.logger.info(f"Selected Contract File Name: {', '.join(random_elements)}")
|
||||
file_input.send_keys(f"{config['contract_files_path']}{contracts}")
|
||||
time.sleep(1)
|
||||
file_input = super().get_file_input(self.driver, self.config)
|
||||
file_list = read_files(self.config["contract_files_path"]+client_name+"\\")
|
||||
files = '\n'.join(file_list)
|
||||
print(files)
|
||||
file_input.send_keys(files)
|
||||
self.logger.info(f"Uploading files...")
|
||||
time.sleep(10)
|
||||
WebDriverWait(self.driver, timeout=50).until(
|
||||
lambda browser: len(browser.find_elements(By.XPATH, '//div[@role="progressbar"]')) == 0
|
||||
lambda browser: len(super().get_file_input_progress(browser)) == 0
|
||||
)
|
||||
time.sleep(5)
|
||||
except InvalidArgumentException:
|
||||
self.logger.info(f"File not found in test folder{', '.join(random_elements)}")
|
||||
except:
|
||||
time.sleep(10)
|
||||
except InvalidArgumentException as e:
|
||||
print(e)
|
||||
self.logger.info(f"File not found in test folder {', '.join(file_list)}")
|
||||
except Exception as e1:
|
||||
print(e1)
|
||||
self.logger.info(f"Exception occur")
|
||||
|
||||
def create_batch(self):
|
||||
create_batch_btn = self.driver.find_element(By.XPATH, "//div[@data-testid='stButton']/button[@data-testid='baseButton-secondary']")
|
||||
create_batch_btn = super().get_create_batch_btn(self.driver, self.config)
|
||||
create_batch_btn.click()
|
||||
self.logger.info("Creating batch")
|
||||
# self.logger.info("Creating batch")
|
||||
time.sleep(3)
|
||||
self.p_element = get_element(self.driver, By.XPATH, "//p[starts-with(., 'batch')]")
|
||||
|
||||
def verify_message(self, tc):
|
||||
time.sleep(3)
|
||||
if tc == 'POS':
|
||||
return super().get_p_element(self.driver, self.config)
|
||||
else:
|
||||
return super().get_error_toast(self.driver, self.config)
|
||||
|
||||
|
||||
@@ -5,71 +5,108 @@ from selenium.common import InvalidArgumentException
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
from elements.interface_1_elements import Interface_1_elements
|
||||
from utils.element_related_methods import get_clickable_element, get_element, get_invisible_element
|
||||
from utils.logger import get_logger
|
||||
|
||||
|
||||
class Interface_1:
|
||||
class Interface_1(Interface_1_elements):
|
||||
logger = get_logger()
|
||||
selected_batch = ''
|
||||
result_message = None
|
||||
p_element = None
|
||||
def __init__(self, driver):
|
||||
|
||||
def __init__(self, driver, config):
|
||||
self.driver = driver
|
||||
self.client_name_dropdown = get_clickable_element(driver, By.XPATH,
|
||||
'/html/body/div/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div')
|
||||
self.config = config
|
||||
|
||||
def select_client(self):
|
||||
self.client_name_dropdown.click()
|
||||
client_list = self.driver.find_elements(By.XPATH, "//li")
|
||||
def select_client(self, client_name=''):
|
||||
client_name_dropdown = super().get_client_name_dropdown(self.driver, self.config)
|
||||
client_name_dropdown.click()
|
||||
client_list = super().get_client_list(self.driver)
|
||||
assert len(client_list) > 0
|
||||
random_number = random.randint(1, len(client_list) - 1)
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected Client Name: {client_list[random_number].text}")
|
||||
client_list[random_number].click()
|
||||
time.sleep(5)
|
||||
if client_name == '':
|
||||
random_number = random.randint(0, len(client_list) - 1)
|
||||
time.sleep(1)
|
||||
self.logger.debug(f"Selected Client Name: {client_list[random_number].text}")
|
||||
client_name = client_list[random_number].text
|
||||
client_list[random_number].click()
|
||||
else:
|
||||
for client in client_list:
|
||||
if client_name == client.text:
|
||||
client.click()
|
||||
self.logger.debug(f"Selected Client Name: {client_name}")
|
||||
break
|
||||
time.sleep(20)
|
||||
return client_name
|
||||
|
||||
def select_batch(self):
|
||||
batch_id = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div')
|
||||
def select_batch(self, batch_id_name=''):
|
||||
batch_id = super().get_batch_id(self.driver, self.config)
|
||||
batch_id.click()
|
||||
batch_id_list = self.driver.find_elements(By.XPATH, "//li")
|
||||
batch_id_list = super().get_batch_id_list(self.driver)
|
||||
assert len(batch_id_list) > 0
|
||||
random_number = random.randint(2, len(batch_id_list) - 1)
|
||||
self.selected_batch = batch_id_list[random_number].text
|
||||
self.logger.info(f"Selected Batch: {batch_id_list[random_number].text}")
|
||||
batch_id_list[random_number].click()
|
||||
if batch_id_name == '':
|
||||
random_number = random.randint(1, len(batch_id_list) - 1)
|
||||
self.selected_batch = batch_id_list[random_number].text
|
||||
time.sleep(1)
|
||||
self.logger.debug(f"Selected Batch: {batch_id_list[random_number].text}")
|
||||
batch_id_name = batch_id_list[random_number].text
|
||||
time.sleep(1)
|
||||
batch_id_list[random_number].click()
|
||||
else:
|
||||
for batch in batch_id_list:
|
||||
if batch.text == batch_id_name:
|
||||
batch.click()
|
||||
self.selected_batch = batch_id_name
|
||||
self.logger.debug(f"Selected Batch: {batch_id_name}")
|
||||
break
|
||||
time.sleep(5)
|
||||
return batch_id_name
|
||||
|
||||
def check_group_no(self):
|
||||
checkbox_list = self.driver.find_elements(By.XPATH, "//div[@data-testid='stCheckbox']")
|
||||
def check_group_no(self, group_checkbox=None):
|
||||
if group_checkbox is None:
|
||||
group_checkbox = []
|
||||
checkbox_list = super().get_checkbox_list(self.driver)
|
||||
assert len(checkbox_list) > 0
|
||||
random_number = random.randint(0, len(checkbox_list) - 1)
|
||||
random_elements = random.sample(checkbox_list, random_number)
|
||||
checked_groups = ''
|
||||
for checkbox in random_elements:
|
||||
checkbox.click()
|
||||
checked_groups = f'{checked_groups}{checkbox.text}, '
|
||||
self.logger.info(f"checked Group No.: {checked_groups[:-2]}")
|
||||
if(len(group_checkbox)>0):
|
||||
checked_groups = ''
|
||||
for checkbox in checkbox_list:
|
||||
if checkbox.text in group_checkbox:
|
||||
checkbox.click()
|
||||
checked_groups = f'{checked_groups}{checkbox.text}, '
|
||||
self.logger.debug(f"checked Group No.: {checked_groups[:-2]}")
|
||||
else:
|
||||
random_number = random.randint(0, len(checkbox_list) - 1)
|
||||
random_elements = random.sample(checkbox_list, random_number)
|
||||
checked_groups = ''
|
||||
for checkbox in random_elements:
|
||||
time.sleep(1)
|
||||
checkbox.click()
|
||||
time.sleep(1)
|
||||
checked_groups = f'{checked_groups}{checkbox.text}, '
|
||||
self.logger.debug(f"checked Group No.: {checked_groups[:-2]}")
|
||||
time.sleep(5)
|
||||
|
||||
def click_read_the_contracts_from_path(self):
|
||||
read_the_contracts_from_path_btn = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[6]/div/button')
|
||||
read_the_contracts_from_path_btn = super().get_read_the_contracts_from_path_btn(self.driver, self.config)
|
||||
read_the_contracts_from_path_btn.click()
|
||||
time.sleep(5)
|
||||
|
||||
def check_table_contain(self):
|
||||
result_table = self.driver.find_element(By.XPATH, "//table[@aria-colcount='9']")
|
||||
rows = result_table.find_elements(By.XPATH, ".//tbody/tr")
|
||||
result_table = super().get_result_table(self.driver, self.config)
|
||||
rows = super().get_table_rows(result_table)
|
||||
for row in rows:
|
||||
print(row)
|
||||
if len(rows) > 0:
|
||||
self.logger.info(f"{len(rows)} contracts are read from batch: {self.selected_batch}")
|
||||
self.logger.debug(f"{len(rows)} contracts are read from batch: {self.selected_batch}")
|
||||
assert True
|
||||
else:
|
||||
assert False
|
||||
time.sleep(5)
|
||||
|
||||
def click_run_doczy_ai_pipeline(self):
|
||||
run_doczy_ai_pipeline_btn = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[11]/div[2]/div/div/div/div/div/button')
|
||||
run_doczy_ai_pipeline_btn = super().get_run_doczy_ai_pipeline_btn(self.driver, self.config)
|
||||
run_doczy_ai_pipeline_btn.click()
|
||||
time.sleep(3)
|
||||
self.result_message = get_element(self.driver, By.XPATH, "//p[starts-with(., 'Success')]")
|
||||
self.result_message = super().get_error(self.driver, self.config)
|
||||
time.sleep(3)
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
from selenium.common import InvalidArgumentException
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
from elements.interface_2_elements import Interface_2_elements
|
||||
from utils.element_related_methods import get_clickable_element, get_element, get_invisible_element
|
||||
from utils.logger import get_logger
|
||||
|
||||
|
||||
class Interface_2(Interface_2_elements):
|
||||
logger = get_logger()
|
||||
selected_batch = ''
|
||||
selected_contract = ''
|
||||
selected_field_group = ''
|
||||
result_message = None
|
||||
p_element = None
|
||||
|
||||
def __init__(self, driver, config):
|
||||
self.driver = driver
|
||||
self.config = config
|
||||
|
||||
def select_client(self, client_name=''):
|
||||
client_name_dropdown = super().get_client_name_dropdown(self.driver, self.config)
|
||||
client_name_dropdown.click()
|
||||
client_list = super().get_client_list(self.driver)
|
||||
assert len(client_list) > 0
|
||||
if client_name == '':
|
||||
random_number = random.randint(0, len(client_list) - 1)
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected Client Name: {client_list[random_number].text}")
|
||||
client_name = client_list[random_number].text
|
||||
client_list[random_number].click()
|
||||
else:
|
||||
# assert client_name in client_list, "Selected Client not present"
|
||||
for client in client_list:
|
||||
print(client.text)
|
||||
if client_name == client.text:
|
||||
client.click()
|
||||
break
|
||||
time.sleep(20)
|
||||
return client_name
|
||||
|
||||
def select_batch(self, batch_id_name=''):
|
||||
batch_id = super().get_batch_id(self.driver, self.config)#get_clickable_element(self.driver, By.XPATH, '/html/body/div/div[1]/div[1]/div/div/div/section[2]/div[1]/div/div/div/div[5]/div[2]/div/div/div/div/div')
|
||||
batch_id.click()
|
||||
batch_id_list = super().get_batch_id_list(self.driver)#self.driver.find_elements(By.XPATH, "//li")
|
||||
assert len(batch_id_list) > 0
|
||||
if batch_id_name == '':
|
||||
random_number = random.randint(1, len(batch_id_list) - 1)
|
||||
self.selected_batch = batch_id_list[random_number].text
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected Batch: {batch_id_list[random_number].text}")
|
||||
batch_id_name = batch_id_list[random_number].text
|
||||
time.sleep(1)
|
||||
batch_id_list[random_number].click()
|
||||
else:
|
||||
assert batch_id_name in batch_id_list, "Selected Batch Id not present"
|
||||
for batch in batch_id_list:
|
||||
if batch.text == batch_id_name:
|
||||
batch.click()
|
||||
break
|
||||
time.sleep(5)
|
||||
return batch_id_name
|
||||
|
||||
def select_contract(self):
|
||||
contract = super().get_contract_name(self.driver, self.config)
|
||||
contract.click()
|
||||
contract_list = super().get_contract_name_list(self.driver)
|
||||
assert len(contract_list) > 0
|
||||
random_number = random.randint(1, len(contract_list) - 1)
|
||||
time.sleep(1)
|
||||
self.selected_contract = contract_list[random_number].text
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected contract: {contract_list[random_number].text}")
|
||||
time.sleep(1)
|
||||
contract_list[random_number].click()
|
||||
time.sleep(5)
|
||||
|
||||
def select_field_group(self):
|
||||
field_group = super().get_field_group(self.driver, self.config)
|
||||
field_group.click()
|
||||
field_group_list = super().get_field_group_list(self.driver)
|
||||
assert len(field_group_list) > 0
|
||||
random_number = random.randint(1, len(field_group_list) - 1)
|
||||
time.sleep(1)
|
||||
self.selected_field_group = field_group_list[random_number].text
|
||||
time.sleep(1)
|
||||
self.logger.info(f"Selected field froup: {field_group_list[random_number].text}")
|
||||
time.sleep(1)
|
||||
field_group_list[random_number].click()
|
||||
time.sleep(5)
|
||||
|
||||
def click_show_results(self):
|
||||
show_result_btn = super().get_show_result_btn(self.driver, self.config)
|
||||
show_result_btn.click()
|
||||
time.sleep(15)
|
||||
|
||||
def check_table_contain(self):
|
||||
result_table = super().get_result_table(self.driver, self.config)
|
||||
rows = super().get_table_rows(result_table)
|
||||
if len(rows) > 0:
|
||||
self.logger.info(f"{len(rows)} fields are read from contract: {self.selected_contract}")
|
||||
assert True
|
||||
else:
|
||||
assert False
|
||||
time.sleep(5)
|
||||
|
||||
def click_kickoff_database_integration_btn(self):
|
||||
kickoff_database_btn = super().get_kickoff_database_btn(self.driver, self.config)
|
||||
kickoff_database_btn.click()
|
||||
time.sleep(15)
|
||||
|
||||
def check_error_message(self):
|
||||
error_message = super().get_error_toast(self.driver, self.config)
|
||||
return error_message.text
|
||||
@@ -1,2 +1,2 @@
|
||||
[pytest]
|
||||
addopts = --html=reports/test_report.html --json=reports/test_report.json
|
||||
addopts = --html=reports/test_report.html --json=reports/test_report.json --alluredir=reports/allure-results
|
||||
@@ -1,3 +1,8 @@
|
||||
selenium~=4.23.1
|
||||
pytest~=8.3.1
|
||||
pandas~=2.2.2
|
||||
loguru~=0.7.2
|
||||
PyYAML~=6.0.1
|
||||
pytest~=8.2.0
|
||||
boto3~=1.34.148
|
||||
pysnowflake~=0.1.3
|
||||
botocore~=1.34.148
|
||||
@@ -1,21 +1,99 @@
|
||||
import datetime
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
from selenium import webdriver
|
||||
|
||||
from pages.interface_0_page_objects import Interface_0
|
||||
from utils.reader import read_yaml
|
||||
from utils.reader import read_yaml, read_excel
|
||||
|
||||
|
||||
# def pytest_runtest_makereport(item, call):
|
||||
# # Your custom logic here
|
||||
# # This function will be called automatically by pytest
|
||||
# # with information about the test item and its outcome (call)
|
||||
# # outcome = yield
|
||||
# # rep = outcome.get_result()
|
||||
# pass
|
||||
|
||||
|
||||
# @pytest.hookimpl(tryfirst=True)
|
||||
def pytest_html_report_title(report):
|
||||
"""Set the title of the HTML report dynamically."""
|
||||
current_datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
report.title = f"Test Report {current_datetime}"
|
||||
|
||||
|
||||
def client_list():
|
||||
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
sheet_name = 'client_data'
|
||||
return read_excel(file_path, sheet_name, ['client'])
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def driver():
|
||||
driver = webdriver.Chrome()
|
||||
# return driver
|
||||
yield driver
|
||||
def client_list_fixture():
|
||||
return client_list()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def groups():
|
||||
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
sheet_name = 'groups'
|
||||
return read_excel(file_path, sheet_name, ['groups'])
|
||||
|
||||
|
||||
def batch_list():
|
||||
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
|
||||
sheet_name = 'batch_data'
|
||||
return read_excel(file_path, sheet_name, ['client', 'Batch'])
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@allure.title("Creating Web Driver")
|
||||
def driver(config, request):
|
||||
browser = request.config.getoption('--browser')
|
||||
if browser == 'remote':
|
||||
driver = webdriver.Remote()
|
||||
yield driver
|
||||
elif browser == 'firefox':
|
||||
driver = webdriver.Firefox()
|
||||
yield driver
|
||||
elif browser == 'edge':
|
||||
driver = webdriver.Edge()
|
||||
yield driver
|
||||
else:
|
||||
driver = webdriver.Chrome()
|
||||
driver.maximize_window()
|
||||
yield driver
|
||||
# if config['platform'] == 'remote':
|
||||
# driver = webdriver.Remote()
|
||||
# yield driver
|
||||
# elif config['platform'] == 'firefox':
|
||||
# driver = webdriver.Firefox()
|
||||
# yield driver
|
||||
# elif config['platform'] == 'edge':
|
||||
# driver = webdriver.Edge()
|
||||
# yield driver
|
||||
# else:
|
||||
# driver = webdriver.Chrome()
|
||||
# yield driver
|
||||
|
||||
if driver is not None:
|
||||
driver.quit()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def config():
|
||||
return read_yaml("C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\config\\env.yaml")["environment"]
|
||||
def config(request):
|
||||
env = request.config.getoption('--env')
|
||||
return read_yaml_config(env)
|
||||
|
||||
|
||||
def read_yaml_config(env):
|
||||
yaml_file_path = "C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\config\\"
|
||||
yaml_file_name = "env.yaml"
|
||||
|
||||
return read_yaml(yaml_file_path, yaml_file_name)["environment"][env]
|
||||
|
||||
|
||||
def pytest_addoption(parser):
|
||||
parser.addoption('--env', action='store', default='DEV', help='Environment to run tests against')
|
||||
parser.addoption('--browser', action='store', default='firefox', help='browser to run test on')
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.wait import WebDriverWait
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
from pages.Pre_sign_in_page import Pre_sign_in_page
|
||||
from pages.interface_0_page_objects import Interface_0
|
||||
from pages.interface_1_page_objects import Interface_1
|
||||
from pages.interface_2_page_objects import Interface_2
|
||||
from tests.conftest import client_list
|
||||
from utils.common_methods import sign_in
|
||||
from utils.element_related_methods import get_title, get_invisible_element
|
||||
from utils.logger import get_logger
|
||||
@@ -16,46 +18,73 @@ class Test_end_to_end:
|
||||
|
||||
logger = get_logger()
|
||||
|
||||
def test_validate_navigation(self, driver, config):
|
||||
self.logger.info("Verifying S3 bucket is created with batch ID")
|
||||
driver.get(config['url_interface_0'])
|
||||
sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver)
|
||||
interface_0_page.select_client()
|
||||
interface_0_page.upload_files(config)
|
||||
interface_0_page.create_batch()
|
||||
self.logger.info(f"Created batch with Batch ID: {interface_0_page.p_element.text}")
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
driver.get(config['url_interface_1'])
|
||||
# sign_in(driver, config)
|
||||
pre_sign_in_page = Pre_sign_in_page(driver)
|
||||
pre_sign_in_page.click_sign_in_link()
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver)
|
||||
interface_1.select_client()
|
||||
interface_1.select_batch()
|
||||
interface_1.check_group_no()
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
interface_1.click_run_doczy_ai_pipeline()
|
||||
if interface_1.result_message.text is "Success":
|
||||
self.logger.info(f"Files are passed to Doczy.AI pipeline")
|
||||
assert True
|
||||
else:
|
||||
self.logger.info(f"Files are passed to Doczy.AI pipeline")
|
||||
assert True
|
||||
|
||||
# def test_verify_sign_in(self, driver, config):
|
||||
# self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 0")
|
||||
# driver.get(config['url_interface_0'])
|
||||
# sign_in(driver, config)
|
||||
# self.logger.info("Signed in successful")
|
||||
# get_title(driver, "interface_0 · Streamlit")
|
||||
# if driver.title == 'interface_0 · Streamlit':
|
||||
# self.logger.info("Interface 0 page opened successfully")
|
||||
# assert True
|
||||
# else:
|
||||
# self.logger.info("Interface 0 page not opened successfully")
|
||||
# assert False
|
||||
# @pytest.mark.skip("Due to broken functionality")
|
||||
@pytest.mark.parametrize("client", client_list())
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for End to end")
|
||||
@allure.sub_suite("Tests for End to end functionality")
|
||||
@allure.title("Verifying End to end functionality")
|
||||
@allure.feature('End to end')
|
||||
@allure.story('Verifying End to end functionality')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_end_to_end(self, client, driver, config, groups):
|
||||
self.logger.info("Verifying End to end functionality")
|
||||
driver.get(config['url_interface_0'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P90Kn8ixTenU_xRich4oROh6FiAIvqe9IcmtiRPSuy7Cl3U70LQWDBnyGZF1wF2US5pmZAl3cYSs3CXilUakzjFaRQS0hZDH-aAb1gwPAtMLD8kA5R0r8ZSuFDfE5TL30BocqNvItA96_6L9DmagcfQmtFhimBmT9zuiGWjDb13rNFI97_UyUojskrzjPLW_PSP_ynOqk9bKCGlsEU4mqnUfHW0HRarnk4nrv-H7mp4LXmHxlpNIUJjIT4lp1vhFz0TdsPXkTypHOhgjPQ6LA0S6NFcdd3pbejPGiRibqwOdS9HI2nYk4g6-FEO7-jRiEchFn_CeXILamMPkZuh4HXvvITZxkYfGHUXqap2mABFXvBknDT0QXqyonjknLCl8-HBmpRt8xe3D5cm95P_147j63uKS3CK9HM7aTAJ9aHAcBwkiF4axlYMoG9WRqC8RbPKaYmBKhcjScCNorqQRKbElXi0O4tkJwkS-CxLElQtQYhwdd1sAxLRSNg4WPz4RN8eH2osmh7RlZz3NrLe465U0PMIFYVRmJSEmiBilYY1LC-Ydg521gxePSpK882qOxJe4URjD2PziYAZ0mFVDvWpsLNtbV3B67mPBlyJD98gkcUsaY-34bmqRxfzbCJRxqBmBrLke-Y4vV16r4m4aAgNIH_sz9nC61hoB46UDpjiwYvMrCRDMrRthsUYD3FpA2CCxTmgNBXYZggLuHrJ_U7pHL71owHdv94yKVmNZOm4D8qs3-0y3zlYzlOC8f-RQQ1WRr7J20L1iN5VOesrv6xwVYS9EQRPOahkmOdwz1LrAcaDoxpr9CI&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Signing in"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_0_page = Interface_0(driver, config)
|
||||
client = interface_0_page.select_client(client)
|
||||
with allure.step("Uploading files"):
|
||||
interface_0_page.upload_files(client)
|
||||
with allure.step("Creating Batch"):
|
||||
interface_0_page.create_batch()
|
||||
with allure.step("Asserting Batch Creating"):
|
||||
assert interface_0_page.verify_message('POS').startswith("batch_")
|
||||
batch = interface_0_page.verify_message('POS')
|
||||
self.logger.info(f"Created batch with Batch ID: {batch}")
|
||||
with allure.step('Navigating to interface 1'):
|
||||
driver.get(config['url_interface_1'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P90Kn8ixTenU_xRich4oROh6FiAIvqe9IcmtiRPSuy7Cl3U70LQWDBnyGZF1wF2US5pmZAl3cYSs3CXilUakzjFaRQS0hZDH-aAb1gwPAtMLD8kA5R0r8ZSuFDfE5TL30BocqNvItA96_6L9DmagcfQmtFhimBmT9zuiGWjDb13rNFI97_UyUojskrzjPLW_PSP_ynOqk9bKCGlsEU4mqnUfHW0HRarnk4nrv-H7mp4LXmHxlpNIUJjIT4lp1vhFz0TdsPXkTypHOhgjPQ6LA0S6NFcdd3pbejPGiRibqwOdS9HI2nYk4g6-FEO7-jRiEchFn_CeXILamMPkZuh4HXvvITZxkYfGHUXqap2mABFXvBknDT0QXqyonjknLCl8-HBmpRt8xe3D5cm95P_147j63uKS3CK9HM7aTAJ9aHAcBwkiF4axlYMoG9WRqC8RbPKaYmBKhcjScCNorqQRKbElXi0O4tkJwkS-CxLElQtQYhwdd1sAxLRSNg4WPz4RN8eH2osmh7RlZz3NrLe465U0PMIFYVRmJSEmiBilYY1LC-Ydg521gxePSpK882qOxJe4URjD2PziYAZ0mFVDvWpsLNtbV3B67mPBlyJD98gkcUsaY-34bmqRxfzbCJRxqBmBrLke-Y4vV16r4m4aAgNIH_sz9nC61hoB46UDpjiwYvMrCRDMrRthsUYD3FpA2CCxTmgNBXYZggLuHrJ_U7pHL71owHdv94yKVmNZOm4D8qs3-0y3zlYzlOC8f-RQQ1WRr7J20L1iN5VOesrv6xwVYS9EQRPOahkmOdwz1LrAcaDoxpr9CI&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# pre_sign_in_page = Pre_sign_in_page(driver)
|
||||
# pre_sign_in_page.click_sign_in_link()
|
||||
# self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
with allure.step('Selecting Client'):
|
||||
interface_1 = Interface_1(driver, config)
|
||||
interface_1.select_client(client)
|
||||
with allure.step('Selecting Batch'):
|
||||
interface_1.select_batch(batch)
|
||||
with allure.step('Selecting Groups'):
|
||||
interface_1.check_group_no(groups)
|
||||
with allure.step('Reading Contracts from S3 Bucket'):
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
with allure.step('Running Doczy.AI Pipeline'):
|
||||
interface_1.click_run_doczy_ai_pipeline()
|
||||
if interface_1.result_message.text == "Success":
|
||||
self.logger.info(f"Files are passed to Doczy.AI pipeline")
|
||||
assert True
|
||||
else:
|
||||
self.logger.info(f"Files are unable to passed to Doczy.AI pipeline")
|
||||
assert False
|
||||
with allure.step("Signing in"):
|
||||
time.sleep(900)
|
||||
driver.get(config[
|
||||
'url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P90Kn8ixTenU_xRich4oROh6FiAIvqe9IcmtiRPSuy7Cl3U70LQWDBnyGZF1wF2US5pmZAl3cYSs3CXilUakzjFaRQS0hZDH-aAb1gwPAtMLD8kA5R0r8ZSuFDfE5TL30BocqNvItA96_6L9DmagcfQmtFhimBmT9zuiGWjDb13rNFI97_UyUojskrzjPLW_PSP_ynOqk9bKCGlsEU4mqnUfHW0HRarnk4nrv-H7mp4LXmHxlpNIUJjIT4lp1vhFz0TdsPXkTypHOhgjPQ6LA0S6NFcdd3pbejPGiRibqwOdS9HI2nYk4g6-FEO7-jRiEchFn_CeXILamMPkZuh4HXvvITZxkYfGHUXqap2mABFXvBknDT0QXqyonjknLCl8-HBmpRt8xe3D5cm95P_147j63uKS3CK9HM7aTAJ9aHAcBwkiF4axlYMoG9WRqC8RbPKaYmBKhcjScCNorqQRKbElXi0O4tkJwkS-CxLElQtQYhwdd1sAxLRSNg4WPz4RN8eH2osmh7RlZz3NrLe465U0PMIFYVRmJSEmiBilYY1LC-Ydg521gxePSpK882qOxJe4URjD2PziYAZ0mFVDvWpsLNtbV3B67mPBlyJD98gkcUsaY-34bmqRxfzbCJRxqBmBrLke-Y4vV16r4m4aAgNIH_sz9nC61hoB46UDpjiwYvMrCRDMrRthsUYD3FpA2CCxTmgNBXYZggLuHrJ_U7pHL71owHdv94yKVmNZOm4D8qs3-0y3zlYzlOC8f-RQQ1WRr7J20L1iN5VOesrv6xwVYS9EQRPOahkmOdwz1LrAcaDoxpr9CI&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# pre_sign_in_page = Pre_sign_in_page(driver)
|
||||
# pre_sign_in_page.click_sign_in_link()
|
||||
# self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_2 = Interface_2(driver, config)
|
||||
interface_2.select_client(client)
|
||||
with allure.step("Selecting Batch"):
|
||||
interface_2.select_batch(batch)
|
||||
with allure.step("Selecting Contract"):
|
||||
interface_2.select_contract()
|
||||
with allure.step("Selecting field Group"):
|
||||
interface_2.select_field_group()
|
||||
with allure.step("Click on 'Show Result' Button"):
|
||||
interface_2.click_show_results()
|
||||
interface_2.check_table_contain()
|
||||
|
||||
@@ -1,22 +1,30 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
from selenium.common import InvalidArgumentException
|
||||
import allure
|
||||
|
||||
from config.aws_conn import get_s3_client
|
||||
from pages.Pre_sign_in_page import Pre_sign_in_page
|
||||
from pages.interface_0_page_objects import Interface_0
|
||||
from utils.element_related_methods import get_title
|
||||
from utils.common_methods import sign_in
|
||||
from utils.logger import get_logger
|
||||
import boto3
|
||||
|
||||
|
||||
class Test_interface_0:
|
||||
|
||||
logger = get_logger()
|
||||
|
||||
# @allure.label("type", 'smoke')
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 0")
|
||||
@allure.sub_suite("Tests for Navigation")
|
||||
@allure.title("Verifying designated Interface 0 Page opens successfully")
|
||||
@allure.feature('Interface 0')
|
||||
@allure.story('Verifying designated Interface 0 Page opens successfully')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_validate_navigation(self, driver, config):
|
||||
self.logger.info("Verifying designated Interface 0 Page opens successfully")
|
||||
driver.get(config['url_interface_0'])
|
||||
get_title(driver, "interface_0 · Streamlit")
|
||||
get_title(driver, config, "interface_0 · Streamlit")
|
||||
if driver.title == 'interface_0 · Streamlit':
|
||||
self.logger.info("Designated Interface 0 Page opened successfully")
|
||||
assert True
|
||||
@@ -24,12 +32,20 @@ class Test_interface_0:
|
||||
self.logger.info("Designated Interface 0 Page not opened successfully")
|
||||
assert False
|
||||
|
||||
# @allure.label('type', 'regression', 'smoke')
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 0")
|
||||
@allure.sub_suite("Tests for Authentication")
|
||||
@allure.title("Verifying Single Sign-On (SSO) Login for Interface 0")
|
||||
@allure.feature('Interface 0')
|
||||
@allure.story('Verifying Single Sign-On (SSO) Login for Interface 0')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_sign_in(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 0")
|
||||
driver.get(config['url_interface_0'])
|
||||
sign_in(driver, config)
|
||||
driver.get(config['url_interface_0'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-Xu65_k1cptZUCoWDROksYjcCYq_DvUcJbXG9MczlC6LlsO80A1Y4mYcEajsGirxfVgaxYazfwYb5sXUbARKILzxaoqtvPuW3nJDMPcIjjOCG5bNQo2tu67oUGeIWJEQIMWH0jVXB4D8N1j3m3Rd1lPkV-d_Wr6LNfieAK1ralDynQXV8zd5y5TNJTkplLjazIKbhjMr9SrhfCs4m-_IrWIPcGIteLt4oly-XzxAxgX6mhs0WTgcXqUfuyTuYkPJrZs70exEdNQi48Ml_vZRXux7NXn_yuyRu51qZ34sG89Wj8nkIdmPyoOi-CTwl0QFSUzNKixWczhQssq0WyRfKgw4-afANx2mkHozy9gwL1JbGm6Je29H00ntHrQX0YvSWtEvTT4kdXRh2F6zaS12LZJ31-GUAOUNdZcz09FitSbdEVSF-Z9e4VPNEZVPoUhj3cbFAf02N5Wv3K4vapE24Aof18CHav9gvg5-BcZUzfPhq-zAva2WoC-DANUSPHOjCQlUBRt2WjnJ-9qqAWNV8A9MIf3-tF5kES48HpIVwnt05uCs0t6M6bDJIK6eml4lV9YfVtlmO9LOxhtoMO69Sj5RExcol8Yz_-5T1u0xlbdKlWetUXQTFNwfjcz1u_HYjXVy_fpLFG1M2MdhjtvQ85hxGBv32d8BDYuGeXpjoc-fYEOnm1tOlESrqbZBzFLRv1MmRlkxiAg3uW0Myb32wKjS2iTFp3pkQ-D8Yxv1h0_HRd9ZeCQE-JfLJ2HALswI9wxLFidsCvZ4xaOXpqLZX0o8U7SwHvLw9BRvPvPol5b7mHQ9_OS&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_0 · Streamlit")
|
||||
get_title(driver, config, "interface_0 · Streamlit")
|
||||
if driver.title == 'interface_0 · Streamlit':
|
||||
self.logger.info("Interface 0 page opened successfully")
|
||||
assert True
|
||||
@@ -37,60 +53,68 @@ class Test_interface_0:
|
||||
self.logger.info("Interface 0 page not opened successfully")
|
||||
assert False
|
||||
|
||||
# def test_verify_client_name_dropdown(self, driver, config):
|
||||
# self.logger.info(f"Opening URL {config['url_interface_0']}")
|
||||
# driver.get(config['url_interface_0'])
|
||||
# self.logger.info(f"URL {config['url_interface_0']} opened")
|
||||
# sign_in(driver, config)
|
||||
# interface_0_page = Interface_0(driver)
|
||||
# interface_0_page.click_client_name_dropdown()
|
||||
# # get_title(driver, "interface_0 · Streamlit")
|
||||
# if driver.title == 'interface_0 · Streamlit':
|
||||
# assert True
|
||||
# else:
|
||||
# assert False
|
||||
|
||||
# @allure.label('type', 'regression', 'smoke')
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 0")
|
||||
@allure.sub_suite("Tests for Batch Creation")
|
||||
@allure.title("Verifying S3 bucket is created with batch ID")
|
||||
@allure.feature('Interface 0')
|
||||
@allure.story('Verifying S3 bucket is created with batch ID')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
@allure.testcase("TC-003")
|
||||
def test_verify_batch_creation(self, driver, config):
|
||||
self.logger.info("Verifying S3 bucket is created with batch ID")
|
||||
driver.get(config['url_interface_0'])
|
||||
sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver)
|
||||
interface_0_page.select_client()
|
||||
interface_0_page.upload_files(config)
|
||||
interface_0_page.create_batch()
|
||||
self.logger.info(f"Created batch with Batch ID: {interface_0_page.p_element.text}")
|
||||
assert interface_0_page.p_element.text.startswith("batch_")
|
||||
driver.get(config['url_interface_0'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-Xu65_k1cptZUCoWDROksYjcCYq_DvUcJbXG9MczlC6LlsO80A1Y4mYcEajsGirxfVgaxYazfwYb5sXUbARKILzxaoqtvPuW3nJDMPcIjjOCG5bNQo2tu67oUGeIWJEQIMWH0jVXB4D8N1j3m3Rd1lPkV-d_Wr6LNfieAK1ralDynQXV8zd5y5TNJTkplLjazIKbhjMr9SrhfCs4m-_IrWIPcGIteLt4oly-XzxAxgX6mhs0WTgcXqUfuyTuYkPJrZs70exEdNQi48Ml_vZRXux7NXn_yuyRu51qZ34sG89Wj8nkIdmPyoOi-CTwl0QFSUzNKixWczhQssq0WyRfKgw4-afANx2mkHozy9gwL1JbGm6Je29H00ntHrQX0YvSWtEvTT4kdXRh2F6zaS12LZJ31-GUAOUNdZcz09FitSbdEVSF-Z9e4VPNEZVPoUhj3cbFAf02N5Wv3K4vapE24Aof18CHav9gvg5-BcZUzfPhq-zAva2WoC-DANUSPHOjCQlUBRt2WjnJ-9qqAWNV8A9MIf3-tF5kES48HpIVwnt05uCs0t6M6bDJIK6eml4lV9YfVtlmO9LOxhtoMO69Sj5RExcol8Yz_-5T1u0xlbdKlWetUXQTFNwfjcz1u_HYjXVy_fpLFG1M2MdhjtvQ85hxGBv32d8BDYuGeXpjoc-fYEOnm1tOlESrqbZBzFLRv1MmRlkxiAg3uW0Myb32wKjS2iTFp3pkQ-D8Yxv1h0_HRd9ZeCQE-JfLJ2HALswI9wxLFidsCvZ4xaOXpqLZX0o8U7SwHvLw9BRvPvPol5b7mHQ9_OS&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
with allure.step("Signing in"):
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver, config)
|
||||
|
||||
with allure.step("Selecting Client"):
|
||||
client_name = interface_0_page.select_client("Centene")
|
||||
with allure.step("Uploading files"):
|
||||
interface_0_page.upload_files(client_name)
|
||||
with allure.step("Creating Batch"):
|
||||
interface_0_page.create_batch()
|
||||
# self.logger.info(f"Created batch with Batch ID: {interface_0_page.p_element.text}")
|
||||
with allure.step("Asserting Batch Creating"):
|
||||
assert interface_0_page.verify_message('POS').startswith("batch_")
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 0")
|
||||
@allure.sub_suite("Tests for Batch Creation without client")
|
||||
@allure.title("Verifying S3 bucket is created without selecting client")
|
||||
@allure.feature('Interface 0')
|
||||
@allure.story('Verifying S3 bucket is created without selecting client')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_batch_creation_without_client(self, driver, config):
|
||||
self.logger.info("Verifying S3 bucket is created without selecting client")
|
||||
driver.get(config[
|
||||
'url_interface_0'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-Xu65_k1cptZUCoWDROksYjcCYq_DvUcJbXG9MczlC6LlsO80A1Y4mYcEajsGirxfVgaxYazfwYb5sXUbARKILzxaoqtvPuW3nJDMPcIjjOCG5bNQo2tu67oUGeIWJEQIMWH0jVXB4D8N1j3m3Rd1lPkV-d_Wr6LNfieAK1ralDynQXV8zd5y5TNJTkplLjazIKbhjMr9SrhfCs4m-_IrWIPcGIteLt4oly-XzxAxgX6mhs0WTgcXqUfuyTuYkPJrZs70exEdNQi48Ml_vZRXux7NXn_yuyRu51qZ34sG89Wj8nkIdmPyoOi-CTwl0QFSUzNKixWczhQssq0WyRfKgw4-afANx2mkHozy9gwL1JbGm6Je29H00ntHrQX0YvSWtEvTT4kdXRh2F6zaS12LZJ31-GUAOUNdZcz09FitSbdEVSF-Z9e4VPNEZVPoUhj3cbFAf02N5Wv3K4vapE24Aof18CHav9gvg5-BcZUzfPhq-zAva2WoC-DANUSPHOjCQlUBRt2WjnJ-9qqAWNV8A9MIf3-tF5kES48HpIVwnt05uCs0t6M6bDJIK6eml4lV9YfVtlmO9LOxhtoMO69Sj5RExcol8Yz_-5T1u0xlbdKlWetUXQTFNwfjcz1u_HYjXVy_fpLFG1M2MdhjtvQ85hxGBv32d8BDYuGeXpjoc-fYEOnm1tOlESrqbZBzFLRv1MmRlkxiAg3uW0Myb32wKjS2iTFp3pkQ-D8Yxv1h0_HRd9ZeCQE-JfLJ2HALswI9wxLFidsCvZ4xaOXpqLZX0o8U7SwHvLw9BRvPvPol5b7mHQ9_OS&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver, config)
|
||||
interface_0_page.create_batch()
|
||||
assert interface_0_page.verify_message('NEG') == "No Client Name Selected.", "Batch ID is created instead of message"
|
||||
|
||||
# @allure.label("type", 'regression')
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 0")
|
||||
@allure.sub_suite("Tests for Batch Creation without files")
|
||||
@allure.title("Verifying S3 bucket is created with no files are uploaded")
|
||||
@allure.feature('Interface 0')
|
||||
@allure.story('Verifying S3 bucket is created with no files are uploaded')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_no_files_uploaded(self, driver, config):
|
||||
self.logger.info("Verifying S3 bucket is created with batch ID")
|
||||
driver.get(config['url_interface_0'])
|
||||
sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver)
|
||||
interface_0_page.select_client()
|
||||
interface_0_page.create_batch()
|
||||
# self.logger.info(f"Created batch with Batch ID: {p_element.text}")
|
||||
# try:
|
||||
assert interface_0_page.p_element.text is "Select files to create batch", "Batch ID is created instead of message"
|
||||
# except AssertionError:
|
||||
# self.logger.info(f"Batch ID is created instead of message")
|
||||
# assert False
|
||||
self.logger.info("Verifying S3 bucket is created with no files are uploaded")
|
||||
driver.get(config['url_interface_0'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P9LX84t_sXygReogqiCvr7kFfaCaIcCEnNTGHigLFFW27KaCXXvBZ4b6UzF9L92ozdGa9JxHLXSNERV8wUc7DZRC5U_FC1U-hcSZjGFGA_rteC6-iOnqSqzp58hTnxJw5gBPxwqO0ZIBZy3zbjfe2piABPrTTvvftQ_ccdzbZoSoBfVbvpnWNpesYapFyc8zCnUdfKAS3sz65mtBouZqqgRQ6C31NhaoUMl5qFmqLs01vM50k3VrnRA_AqkzMTne0nNgt53FsdQ2WbubuIIZnwNFbDO8WwskHT2r_jVjnSXXs7pgufPMgV0DOlu2BRZKnabLSqiYa0OGsUepnB7dTV9QlduQw-_TYyXdiReapwXxkz9RtfgM8EUgt1ldTGB5Qd4GOtXDwACNcas53RxUoKJeI2vLVLSXKAtvhROs8NqvF222T1IWWDjjari6-M661OZd2kEmx9JeRilSlmIylonz8qhmL40dRWsDppiSeoPiCgIQsoIqZJiCD8TTMyUSo23qxDcQZamIR8LlteELMQdZHUpSfQG8vKCF02I7Bxc8zD8aksP-27O7g7JTCwWQ3OOFbTGH2hy9_JZFzWCj6W8vYbb9yjGJrAccevXg6T-FBa6LBqWZBmTP9q6Ic8XQOUFZaYMkceMuDg6-ARDxyLXWE60ajN3fQA0xkFrWXOyaCJY3fYnxpHwRk_jyC_yEAaZCciUHFyDPK_Uiudh4L4jbpy7wKM_GPR0faJE0OPJbTc32SId6-LC9e2ECaFYtyUNTkLw-DVhZ2MnFbUEj-Y0SAoRYchAroTF7EfByMFLqSXAKeGj&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
with allure.step("Sign In"):
|
||||
self.logger.info("Signed in successful")
|
||||
interface_0_page = Interface_0(driver, config)
|
||||
with allure.step("Selecting Client"):
|
||||
interface_0_page.select_client('Centene')
|
||||
with allure.step("Creating Batch"):
|
||||
interface_0_page.create_batch()
|
||||
assert interface_0_page.verify_message('NEG') == "No Files Selected.", "Batch ID is created instead of message"
|
||||
|
||||
|
||||
# def test_multiple_files(self, driver, config):
|
||||
# contract_files = config["contract_files"]
|
||||
# # random.seed(5)
|
||||
# random_count = random.randint(1, len(contract_files)) # Choose a random count between 1 and the length of the array
|
||||
#
|
||||
# # Get a random selection of elements from the array
|
||||
# random_elements = random.sample(contract_files, random_count)
|
||||
#
|
||||
# # Print the random count and the selected elements
|
||||
# print("Random count:", random_count)
|
||||
# print("Random elements:", random_elements)
|
||||
# contracts = '\nC:\\Ankit\\Marked Up PDFs\\test\\'.join(random_elements)
|
||||
# print(contracts)
|
||||
# # for file in contract_files:
|
||||
# # print(file)
|
||||
# # print(contract_files)
|
||||
@@ -1,4 +1,8 @@
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
from pages.interface_1_page_objects import Interface_1
|
||||
from tests.conftest import groups
|
||||
from utils.element_related_methods import get_title
|
||||
from utils.common_methods import sign_in
|
||||
from utils.logger import get_logger
|
||||
@@ -8,11 +12,18 @@ class Test_interface_1:
|
||||
|
||||
logger = get_logger()
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 1")
|
||||
@allure.sub_suite("Tests for Navigation")
|
||||
@allure.title("Verifying designated Interface 1 Page opens successfully")
|
||||
@allure.feature('Interface 1')
|
||||
@allure.story('Verifying designated Interface 1 Page opens successfully')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_validate_navigation(self, driver, config):
|
||||
self.logger.info("Verifying designated Interface 1 Page opens successfully")
|
||||
driver.get(config['url_interface_1'])
|
||||
self.logger.info(f"url_interface_1 {config['url_interface_1']} opened")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
if driver.title == 'interface_1 · Streamlit':
|
||||
self.logger.info("Designated Interface 1 Page opened successfully")
|
||||
assert True
|
||||
@@ -20,12 +31,19 @@ class Test_interface_1:
|
||||
self.logger.info("Designated Interface 1 Page not opened successfully")
|
||||
assert False
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 1")
|
||||
@allure.sub_suite("Tests for Authentication")
|
||||
@allure.title("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
@allure.feature('Interface 1')
|
||||
@allure.story('Verifying Single Sign-On (SSO) Login for Interface 1')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_sign_in(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
driver.get(config['url_interface_1'])
|
||||
sign_in(driver, config)
|
||||
driver.get(config['url_interface_1'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-OZmUc_k67ay91q5x8iGq-FCMcsGOuN-RILqMWR3WzTHoAUItcREFppJowN22APhWP0_3aO-H-ByYLq_4toR4SkrJ83TIfavORbh2T-CllhzINKejOopV6Oj2TGqnANs2vp_vgpufdLpQiYcT5Cntcx6Zfz4TZCFrmFNjxoLox5FcXrNiwv_yTFyoiHaIUJG-cIaOn_oTqRGo7O-hUouN9JVxhmnU7ufPFdqEyvj566q9FddhHWKDUAh15f8nxWwRKqI65-vBXTiygJZboznnFjs4kQaXi7sRrmoT1uXt73lxr6FQe6bzlIWxHRWXci50qp4J_MU5gfZ1vSzJS5zFzFy7W2spTG7hByAH9LVv3us5Q_dAvr2_J3rn6zLJaZBnp_xRJ6cJM9e_zgcxL5zD6vVPtFkuqxWpV_Axtm2xrqTS7q03WRoDDwhRlHC02whsP8HVovurA-knXTrIRHM4p1eRSfK99EuKkev0eOGL5cNSKT-JNLQoe23R-JstAqhlyTSTis2wNK8I5Y2kd5esJGnBoe1jHeyTD5a-yppMfmBd6nW90_nvOc0eipFxMuWnhvYs56ex5Mv7PM6iWvnrP2ewVPbRI7oFa8WM_YhJ84Je4JRVw-HGi8Ftfv3pZfn8kxfxAp2lvncXw9GmCjm3eig-NdJqB1gpNGXN-lPZgMzjOwX5REWe3Wvqn2wK9sNd9gSzGTUCtHCN9NCkuSqkUAlAxECMy7FVuUl8i3CqNCkfrd7EI-LwczhRaOnKT9VJF0E544fAK1W5GWKMBGcrcrp8fJwOdAHqf8R7Mcsl3XzrafYzJo1SO&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
if driver.title == 'interface_1 · Streamlit':
|
||||
self.logger.info("Interface 1 page opened successfully")
|
||||
assert True
|
||||
@@ -33,50 +51,77 @@ class Test_interface_1:
|
||||
self.logger.info("Interface 1 page not opened successfully")
|
||||
assert False
|
||||
|
||||
def test_read_contract_from_path(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
driver.get(config['url_interface_1'])
|
||||
sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver)
|
||||
interface_1.select_client()
|
||||
interface_1.select_batch()
|
||||
interface_1.check_group_no()
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 1")
|
||||
@allure.sub_suite("Tests for Read the contracts from Path")
|
||||
@allure.title('Verify the "Read the contracts from Path" button functionality')
|
||||
@allure.feature('Interface 1')
|
||||
@allure.story('Verify the "Read the contracts from Path" button functionality')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_read_contract_from_path(self, driver, config, groups):
|
||||
self.logger.info('Verify the "Read the contracts from Path" button functionality')
|
||||
driver.get(config['url_interface_1'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-OZmUc_k67ay91q5x8iGq-FCMcsGOuN-RILqMWR3WzTHoAUItcREFppJowN22APhWP0_3aO-H-ByYLq_4toR4SkrJ83TIfavORbh2T-CllhzINKejOopV6Oj2TGqnANs2vp_vgpufdLpQiYcT5Cntcx6Zfz4TZCFrmFNjxoLox5FcXrNiwv_yTFyoiHaIUJG-cIaOn_oTqRGo7O-hUouN9JVxhmnU7ufPFdqEyvj566q9FddhHWKDUAh15f8nxWwRKqI65-vBXTiygJZboznnFjs4kQaXi7sRrmoT1uXt73lxr6FQe6bzlIWxHRWXci50qp4J_MU5gfZ1vSzJS5zFzFy7W2spTG7hByAH9LVv3us5Q_dAvr2_J3rn6zLJaZBnp_xRJ6cJM9e_zgcxL5zD6vVPtFkuqxWpV_Axtm2xrqTS7q03WRoDDwhRlHC02whsP8HVovurA-knXTrIRHM4p1eRSfK99EuKkev0eOGL5cNSKT-JNLQoe23R-JstAqhlyTSTis2wNK8I5Y2kd5esJGnBoe1jHeyTD5a-yppMfmBd6nW90_nvOc0eipFxMuWnhvYs56ex5Mv7PM6iWvnrP2ewVPbRI7oFa8WM_YhJ84Je4JRVw-HGi8Ftfv3pZfn8kxfxAp2lvncXw9GmCjm3eig-NdJqB1gpNGXN-lPZgMzjOwX5REWe3Wvqn2wK9sNd9gSzGTUCtHCN9NCkuSqkUAlAxECMy7FVuUl8i3CqNCkfrd7EI-LwczhRaOnKT9VJF0E544fAK1W5GWKMBGcrcrp8fJwOdAHqf8R7Mcsl3XzrafYzJo1SO&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Signing in"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.debug("Signed in successful")
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
with allure.step('Selecting Client'):
|
||||
interface_1 = Interface_1(driver, config)
|
||||
interface_1.select_client("Centene")
|
||||
with allure.step('Selecting Batch'):
|
||||
interface_1.select_batch("batch_190624022330")
|
||||
with allure.step('Selecting Groups'):
|
||||
interface_1.check_group_no(groups)
|
||||
with allure.step('Reading Contracts from S3 Bucket'):
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
|
||||
def test_run_doczy_ai_pipeline(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
driver.get(config['url_interface_1'])
|
||||
sign_in(driver, config)
|
||||
# @pytest.mark.skip("Due to broken functionality")
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 1")
|
||||
@allure.sub_suite("Tests for Run Doczy.AI Pipeline")
|
||||
@allure.title('Verify "Run Doczy.AI Pipeline" button functionality')
|
||||
@allure.feature('Interface 1')
|
||||
@allure.story('Verify "Run Doczy.AI Pipeline" button functionality')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_run_doczy_ai_pipeline(self, driver, config, groups):
|
||||
self.logger.info('Verify "Run Doczy.AI Pipeline" button functionality')
|
||||
driver.get(config['url_interface_1'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P9xUVp2PJ6-Ymm_h4pBRlXjhIYg3cEOpiosJGKkG8EF0WMNT10RyUeKXqrs3UDMkLlTCZy3qMPFePktnSIkLU7AmdUv_QXjPc221BMScHwImuvMxH5YhN8s8jeJuS9GWMnllIbKInqHn_DNzL5uBSMVCd3lx1YEtHTr2Bn_MY4Vp9TS7Z3byW3upWK77c6SE6Fsv4nBTTab_4ebD_cLAanFoY2BPZdKXPngveBjjxDPUcAXD3JvRwUGHPUR8Iv3sRip6lqa02SsXt0_UzhypRYRmP67P52D_xhGjfQ--FuVF_M87UTnFK4FeNVHSeU6SRKJA9VWG9QDnizP-xiRB_8cnfmaaBw2UWnpbXC1o_EnsWPbjyomHylkPTc69gygghWBOGwR8agZA3B8sWjz-pMJO8E7hWpOIBlsEeRLJieXgBZxdRG77JZ4iUtJZZ0Dd-1VFxQCh8bSUl9TBdHA8wzui-dqNd15xKDHtS7FA3BHGZOICrYcKeiaShjC2OhQl71oUOtF8o31zsyUvq9jeTCL64X1l_xL8ePDqzinfJeaN--mPea3QZHkd3P6jOGdT4cTD9u-RBTD-Qbu6dj5egQDgUSPCcfL7kVeSz0QSi8jpqUoxJi4RTOXZEFLX77n88kUJczMsUsSQSdzTaKBDXY5HQwFK79jE5uJ7hwdBcEtKBHv0zoE0pn8RogLwzKk6SG-6R94UAuvuYw-ivkW8HyCWbGHQq_QSj5YdMEyBO2C-woCH5qwFbN4qoTc-OabOvW4lHTfFyeoJB7ryUdHilMd1kdAPe6WNNRKCmLb0Ofn_Jv5eqFID6L7DtmEJCc&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver)
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver, config)
|
||||
interface_1.select_client()
|
||||
interface_1.select_batch()
|
||||
interface_1.check_group_no()
|
||||
interface_1.check_group_no(groups)
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
interface_1.click_run_doczy_ai_pipeline()
|
||||
if interface_1.result_message.text is "Success":
|
||||
if interface_1.result_message.text == "Success":
|
||||
self.logger.info(f"Files are passed to Doczy.AI pipeline")
|
||||
assert True
|
||||
else:
|
||||
self.logger.info(f"Files are passed to Doczy.AI pipeline")
|
||||
assert True
|
||||
|
||||
@pytest.mark.skip("Due to broken functionality")
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 1")
|
||||
@allure.sub_suite("Tests for Run Doczy.AI Pipeline with no Groups")
|
||||
@allure.title('Verify if none Group No is selected from Group No Checkbox or from table then "Run Doczy.AI Pipeline"should not be functional')
|
||||
@allure.feature('Interface 1')
|
||||
@allure.story('Verify if none Group No is selected from Group No Checkbox or from table then "Run Doczy.AI Pipeline"should not be functional')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_run_doczy_ai_pipeline_without_selecting_group_no(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 1")
|
||||
driver.get(config['url_interface_1'])
|
||||
sign_in(driver, config)
|
||||
self.logger.info('Verify if none Group No is selected from Group No Checkbox or from table then "Run Doczy.AI Pipeline"should not be functional')
|
||||
driver.get(config['url_interface_1'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P-OZmUc_k67ay91q5x8iGq-FCMcsGOuN-RILqMWR3WzTHoAUItcREFppJowN22APhWP0_3aO-H-ByYLq_4toR4SkrJ83TIfavORbh2T-CllhzINKejOopV6Oj2TGqnANs2vp_vgpufdLpQiYcT5Cntcx6Zfz4TZCFrmFNjxoLox5FcXrNiwv_yTFyoiHaIUJG-cIaOn_oTqRGo7O-hUouN9JVxhmnU7ufPFdqEyvj566q9FddhHWKDUAh15f8nxWwRKqI65-vBXTiygJZboznnFjs4kQaXi7sRrmoT1uXt73lxr6FQe6bzlIWxHRWXci50qp4J_MU5gfZ1vSzJS5zFzFy7W2spTG7hByAH9LVv3us5Q_dAvr2_J3rn6zLJaZBnp_xRJ6cJM9e_zgcxL5zD6vVPtFkuqxWpV_Axtm2xrqTS7q03WRoDDwhRlHC02whsP8HVovurA-knXTrIRHM4p1eRSfK99EuKkev0eOGL5cNSKT-JNLQoe23R-JstAqhlyTSTis2wNK8I5Y2kd5esJGnBoe1jHeyTD5a-yppMfmBd6nW90_nvOc0eipFxMuWnhvYs56ex5Mv7PM6iWvnrP2ewVPbRI7oFa8WM_YhJ84Je4JRVw-HGi8Ftfv3pZfn8kxfxAp2lvncXw9GmCjm3eig-NdJqB1gpNGXN-lPZgMzjOwX5REWe3Wvqn2wK9sNd9gSzGTUCtHCN9NCkuSqkUAlAxECMy7FVuUl8i3CqNCkfrd7EI-LwczhRaOnKT9VJF0E544fAK1W5GWKMBGcrcrp8fJwOdAHqf8R7Mcsl3XzrafYzJo1SO&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver)
|
||||
get_title(driver, config, "interface_1 · Streamlit")
|
||||
interface_1 = Interface_1(driver, config)
|
||||
interface_1.select_client()
|
||||
interface_1.select_batch()
|
||||
interface_1.click_read_the_contracts_from_path()
|
||||
interface_1.check_table_contain()
|
||||
interface_1.click_run_doczy_ai_pipeline()
|
||||
assert interface_1.result_message.text is "Please select at least one Group No."
|
||||
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
import allure
|
||||
import pytest
|
||||
|
||||
from pages.interface_2_page_objects import Interface_2
|
||||
from utils.common_methods import sign_in
|
||||
from utils.element_related_methods import get_title
|
||||
from utils.logger import get_logger
|
||||
|
||||
|
||||
class Test_interface_2:
|
||||
logger = get_logger()
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Navigation")
|
||||
@allure.title("Verifying designated Interface 2 Page opens successfully")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story('Verifying designated Interface 2 Page opens successfully')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_validate_navigation(self, driver, config):
|
||||
self.logger.info("Verifying designated Interface 2 Page opens successfully")
|
||||
driver.get(config['url_interface_2'])
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
if driver.title == 'interface_2 · Streamlit':
|
||||
self.logger.info("Designated Interface 2 Page opened successfully")
|
||||
assert True
|
||||
else:
|
||||
self.logger.info("Designated Interface 2 Page not opened successfully")
|
||||
assert False
|
||||
|
||||
# @pytest.mark.skip("Due to bug ")
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Authentication")
|
||||
@allure.title("Verifying Single Sign-On (SSO) Login for Interface 2")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story('Verifying Single Sign-On (SSO) Login for Interface 2')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_sign_in(self, driver, config):
|
||||
self.logger.info("Verifying Single Sign-On (SSO) Login for Interface 2")
|
||||
driver.get(config['url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P91FtoYFvR20dqHG0dEKQhDe1BftWl3mQWsfh9s8UJttZdIVkp4cYIkmKKhTtdGruEzTbeZjcCH6mii-K8QH5QDmQ9chVv-P5lGlTOPig_9AZ_6ZZEty4XWPFPJzseHk4JsvCk36kgebUZvfT2X2MfMEsRi-TnOC2CWhhlurm0a8mCR7WzDWHLzPHpFAwcd-GS7V3N8NUri6LDskw8E1HiOtMSs0SwwZCGw2A7GZV59MrYvNxi8YyousqNRLhdOg56PrzlhLk5l-hgm9ZX9NrKYmlNmb3LYFrxd8zgWQ5fdulyColwquQHTGZ4kRwM49xCdTEsCDprDYqopmMoPXcwvjFz69f_a9S-qT8jNhFGN_WmdoUlq02J0BSLnD-IfKNAQe5w2D6SKCYH4LLZnSSKpQrJUFosqYmxOsk34Z80enm-f4kiJhzqYt9Qwa6n70J3bF-6vXCjZdu3l5iI5CLc7QcaicPmfiOQBGu_EyFploqsW7fmqfNhJ92_W0jL_yQvgZaBtMeZH23BmVpYQGdNeBhRauBj4qaHpTkPHSUPBw26atNtq5yWOs0j6gIL_hhHljLqqvMmI3vw0B3deVxqy2MvgU40wkYYfETwaBaIVTH5OtO60EBULwN7PBCYDVOT2ZskBZnQCp29IZqam1GwZHDBHEVbw9djRXl9ZwKOUHa9mv_dKHJAB_cMtpAzOF0H6fnyzLr1kZEd-hfHUY-ZF1mrEPgUBKC5swYTfgYpBpgWjnlxMKva9tC1iHAwKSyRcsRc7BnSzBJv9ZU8UhzrhIlJ1ILGjjJQcUwicfVIokN9X79fxllkkqQ&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
if driver.title == 'interface_2 · Streamlit':
|
||||
self.logger.info("Interface 2 page opened successfully")
|
||||
assert True
|
||||
else:
|
||||
self.logger.info("Interface 2 page not opened successfully")
|
||||
assert False
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Show Result button")
|
||||
@allure.title("Verify the 'show result' button functionality")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story("Verify the 'show result' button functionality")
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
@allure.testcase("TC-008")
|
||||
def test_verify_show_results_button(self, driver, config):
|
||||
self.logger.info("Verify the 'show result' button functionality")
|
||||
driver.get(config[
|
||||
'url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P91FtoYFvR20dqHG0dEKQhDe1BftWl3mQWsfh9s8UJttZdIVkp4cYIkmKKhTtdGruEzTbeZjcCH6mii-K8QH5QDmQ9chVv-P5lGlTOPig_9AZ_6ZZEty4XWPFPJzseHk4JsvCk36kgebUZvfT2X2MfMEsRi-TnOC2CWhhlurm0a8mCR7WzDWHLzPHpFAwcd-GS7V3N8NUri6LDskw8E1HiOtMSs0SwwZCGw2A7GZV59MrYvNxi8YyousqNRLhdOg56PrzlhLk5l-hgm9ZX9NrKYmlNmb3LYFrxd8zgWQ5fdulyColwquQHTGZ4kRwM49xCdTEsCDprDYqopmMoPXcwvjFz69f_a9S-qT8jNhFGN_WmdoUlq02J0BSLnD-IfKNAQe5w2D6SKCYH4LLZnSSKpQrJUFosqYmxOsk34Z80enm-f4kiJhzqYt9Qwa6n70J3bF-6vXCjZdu3l5iI5CLc7QcaicPmfiOQBGu_EyFploqsW7fmqfNhJ92_W0jL_yQvgZaBtMeZH23BmVpYQGdNeBhRauBj4qaHpTkPHSUPBw26atNtq5yWOs0j6gIL_hhHljLqqvMmI3vw0B3deVxqy2MvgU40wkYYfETwaBaIVTH5OtO60EBULwN7PBCYDVOT2ZskBZnQCp29IZqam1GwZHDBHEVbw9djRXl9ZwKOUHa9mv_dKHJAB_cMtpAzOF0H6fnyzLr1kZEd-hfHUY-ZF1mrEPgUBKC5swYTfgYpBpgWjnlxMKva9tC1iHAwKSyRcsRc7BnSzBJv9ZU8UhzrhIlJ1ILGjjJQcUwicfVIokN9X79fxllkkqQ&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Signing in"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_2 = Interface_2(driver, config)
|
||||
interface_2.select_client("Centene")
|
||||
with allure.step("Selecting Batch"):
|
||||
interface_2.select_batch()
|
||||
with allure.step("Selecting Contract"):
|
||||
interface_2.select_contract()
|
||||
with allure.step("Selecting field Group"):
|
||||
interface_2.select_field_group()
|
||||
with allure.step("Click on 'Show Result' Button"):
|
||||
interface_2.click_show_results()
|
||||
interface_2.check_table_contain()
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Show Result button without Contract")
|
||||
@allure.title("Verify the 'show result' button functionality without selecting contracts")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story("Verify the 'show result' button functionality without selecting contracts")
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_show_results_button_without_contract(self, driver, config):
|
||||
self.logger.info("Verify the 'show result' button functionality without selecting contracts")
|
||||
driver.get(config[
|
||||
'url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P91FtoYFvR20dqHG0dEKQhDe1BftWl3mQWsfh9s8UJttZdIVkp4cYIkmKKhTtdGruEzTbeZjcCH6mii-K8QH5QDmQ9chVv-P5lGlTOPig_9AZ_6ZZEty4XWPFPJzseHk4JsvCk36kgebUZvfT2X2MfMEsRi-TnOC2CWhhlurm0a8mCR7WzDWHLzPHpFAwcd-GS7V3N8NUri6LDskw8E1HiOtMSs0SwwZCGw2A7GZV59MrYvNxi8YyousqNRLhdOg56PrzlhLk5l-hgm9ZX9NrKYmlNmb3LYFrxd8zgWQ5fdulyColwquQHTGZ4kRwM49xCdTEsCDprDYqopmMoPXcwvjFz69f_a9S-qT8jNhFGN_WmdoUlq02J0BSLnD-IfKNAQe5w2D6SKCYH4LLZnSSKpQrJUFosqYmxOsk34Z80enm-f4kiJhzqYt9Qwa6n70J3bF-6vXCjZdu3l5iI5CLc7QcaicPmfiOQBGu_EyFploqsW7fmqfNhJ92_W0jL_yQvgZaBtMeZH23BmVpYQGdNeBhRauBj4qaHpTkPHSUPBw26atNtq5yWOs0j6gIL_hhHljLqqvMmI3vw0B3deVxqy2MvgU40wkYYfETwaBaIVTH5OtO60EBULwN7PBCYDVOT2ZskBZnQCp29IZqam1GwZHDBHEVbw9djRXl9ZwKOUHa9mv_dKHJAB_cMtpAzOF0H6fnyzLr1kZEd-hfHUY-ZF1mrEPgUBKC5swYTfgYpBpgWjnlxMKva9tC1iHAwKSyRcsRc7BnSzBJv9ZU8UhzrhIlJ1ILGjjJQcUwicfVIokN9X79fxllkkqQ&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Signing in"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_2 = Interface_2(driver, config)
|
||||
interface_2.select_client("Centene")
|
||||
with allure.step("Selecting Batch"):
|
||||
interface_2.select_batch()
|
||||
with allure.step("Selecting field Group"):
|
||||
interface_2.select_field_group()
|
||||
with allure.step("Click on 'Show Result' Button"):
|
||||
interface_2.click_show_results()
|
||||
assert interface_2.check_error_message() == "Please select Contract"
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Show Result button without Field Groups")
|
||||
@allure.title("Verify the 'show result' button functionality without selecting field groups")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story("Verify the 'show result' button functionality without selecting field groups")
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_show_results_button_without_field_group(self, driver, config):
|
||||
self.logger.info("Verify the 'show result' button functionality without selecting field groups")
|
||||
driver.get(config[
|
||||
'url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P91FtoYFvR20dqHG0dEKQhDe1BftWl3mQWsfh9s8UJttZdIVkp4cYIkmKKhTtdGruEzTbeZjcCH6mii-K8QH5QDmQ9chVv-P5lGlTOPig_9AZ_6ZZEty4XWPFPJzseHk4JsvCk36kgebUZvfT2X2MfMEsRi-TnOC2CWhhlurm0a8mCR7WzDWHLzPHpFAwcd-GS7V3N8NUri6LDskw8E1HiOtMSs0SwwZCGw2A7GZV59MrYvNxi8YyousqNRLhdOg56PrzlhLk5l-hgm9ZX9NrKYmlNmb3LYFrxd8zgWQ5fdulyColwquQHTGZ4kRwM49xCdTEsCDprDYqopmMoPXcwvjFz69f_a9S-qT8jNhFGN_WmdoUlq02J0BSLnD-IfKNAQe5w2D6SKCYH4LLZnSSKpQrJUFosqYmxOsk34Z80enm-f4kiJhzqYt9Qwa6n70J3bF-6vXCjZdu3l5iI5CLc7QcaicPmfiOQBGu_EyFploqsW7fmqfNhJ92_W0jL_yQvgZaBtMeZH23BmVpYQGdNeBhRauBj4qaHpTkPHSUPBw26atNtq5yWOs0j6gIL_hhHljLqqvMmI3vw0B3deVxqy2MvgU40wkYYfETwaBaIVTH5OtO60EBULwN7PBCYDVOT2ZskBZnQCp29IZqam1GwZHDBHEVbw9djRXl9ZwKOUHa9mv_dKHJAB_cMtpAzOF0H6fnyzLr1kZEd-hfHUY-ZF1mrEPgUBKC5swYTfgYpBpgWjnlxMKva9tC1iHAwKSyRcsRc7BnSzBJv9ZU8UhzrhIlJ1ILGjjJQcUwicfVIokN9X79fxllkkqQ&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Signing in"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_2 = Interface_2(driver, config)
|
||||
interface_2.select_client("Centene")
|
||||
with allure.step("Selecting Batch"):
|
||||
interface_2.select_batch()
|
||||
with allure.step("Selecting Contract"):
|
||||
interface_2.select_contract()
|
||||
with allure.step("Click on 'Show Result' Button"):
|
||||
interface_2.click_show_results()
|
||||
assert interface_2.check_error_message() == "Please select a Field Group"
|
||||
|
||||
@allure.parent_suite("Tests for web interface")
|
||||
@allure.suite("Tests for Interface 2")
|
||||
@allure.sub_suite("Tests for Kickoff Database Integration")
|
||||
@allure.title("Verifying Kickoff Database Integration Functionality")
|
||||
@allure.feature('Interface 2')
|
||||
@allure.story('Verifying Kickoff Database Integration Functionality')
|
||||
@allure.severity(allure.severity_level.CRITICAL)
|
||||
def test_verify_Kickoff_Database_Integration(self, driver, config):
|
||||
self.logger.info("Verifying Kickoff Database Integration Functionality")
|
||||
driver.get(config[
|
||||
'url_interface_2'] + "?code=0.AVsA57e_zrnCv0-sKQYbnoaPz5D--u_XfqNDqwMZoL4vF1hbAN8.AgABBAIAAAApTwJmzXqdR4BN2miheQMYAgDs_wUA9P91FtoYFvR20dqHG0dEKQhDe1BftWl3mQWsfh9s8UJttZdIVkp4cYIkmKKhTtdGruEzTbeZjcCH6mii-K8QH5QDmQ9chVv-P5lGlTOPig_9AZ_6ZZEty4XWPFPJzseHk4JsvCk36kgebUZvfT2X2MfMEsRi-TnOC2CWhhlurm0a8mCR7WzDWHLzPHpFAwcd-GS7V3N8NUri6LDskw8E1HiOtMSs0SwwZCGw2A7GZV59MrYvNxi8YyousqNRLhdOg56PrzlhLk5l-hgm9ZX9NrKYmlNmb3LYFrxd8zgWQ5fdulyColwquQHTGZ4kRwM49xCdTEsCDprDYqopmMoPXcwvjFz69f_a9S-qT8jNhFGN_WmdoUlq02J0BSLnD-IfKNAQe5w2D6SKCYH4LLZnSSKpQrJUFosqYmxOsk34Z80enm-f4kiJhzqYt9Qwa6n70J3bF-6vXCjZdu3l5iI5CLc7QcaicPmfiOQBGu_EyFploqsW7fmqfNhJ92_W0jL_yQvgZaBtMeZH23BmVpYQGdNeBhRauBj4qaHpTkPHSUPBw26atNtq5yWOs0j6gIL_hhHljLqqvMmI3vw0B3deVxqy2MvgU40wkYYfETwaBaIVTH5OtO60EBULwN7PBCYDVOT2ZskBZnQCp29IZqam1GwZHDBHEVbw9djRXl9ZwKOUHa9mv_dKHJAB_cMtpAzOF0H6fnyzLr1kZEd-hfHUY-ZF1mrEPgUBKC5swYTfgYpBpgWjnlxMKva9tC1iHAwKSyRcsRc7BnSzBJv9ZU8UhzrhIlJ1ILGjjJQcUwicfVIokN9X79fxllkkqQ&session_state=7515cdc9-6fd7-4e93-b526-f0a3c23401fd#")
|
||||
with allure.step("Selecting Client"):
|
||||
# sign_in(driver, config)
|
||||
self.logger.info("Signed in successful")
|
||||
get_title(driver, config, "interface_2 · Streamlit")
|
||||
with allure.step("Selecting Client"):
|
||||
interface_2 = Interface_2(driver, config)
|
||||
interface_2.select_client("Centene")
|
||||
with allure.step("Selecting Batch"):
|
||||
interface_2.select_batch()
|
||||
with allure.step("Selecting Contract"):
|
||||
interface_2.select_contract()
|
||||
with allure.step("Selecting field Group"):
|
||||
interface_2.select_field_group()
|
||||
with allure.step("Click on 'Show Result' Button"):
|
||||
interface_2.click_show_results()
|
||||
interface_2.check_table_contain()
|
||||
with allure.step("Click on 'Kickoff Database Integration' Button"):
|
||||
# interface_2.click_kickoff_database_integration_btn()
|
||||
pass
|
||||
###Verify with database###
|
||||
@@ -0,0 +1,42 @@
|
||||
from selenium.common import TimeoutException
|
||||
|
||||
|
||||
class CustomError(Exception):
|
||||
"""Base class for custom exceptions"""
|
||||
def __init__(self, message):
|
||||
super().__init__(message)
|
||||
self.message = message
|
||||
|
||||
|
||||
class InvalidInputError(CustomError):
|
||||
"""Exception raised for invalid inputs"""
|
||||
def __init__(self, value):
|
||||
super().__init__(f"Invalid input: {value}")
|
||||
self.value = value
|
||||
|
||||
|
||||
class DatabaseConnectionError(CustomError):
|
||||
"""Exception raised for database connection errors"""
|
||||
def __init__(self, db_url):
|
||||
super().__init__(f"Database connection failed: {db_url}")
|
||||
self.db_url = db_url
|
||||
|
||||
|
||||
class NoYamlFile(FileNotFoundError):
|
||||
def __init__(self, yaml_file_path, yaml_file_name):
|
||||
super().__init__(f"Please create YAML file at location={yaml_file_path} with filename={yaml_file_name}")
|
||||
self.yaml_file_path = yaml_file_path
|
||||
self.yaml_file_name = yaml_file_name
|
||||
|
||||
|
||||
class NoElementFound(Exception):
|
||||
def __init__(self, xpath, timeout):
|
||||
super().__init__(f"Element with \"{xpath}\" XPATH is not located in {timeout} second. Try re-run the testcase")
|
||||
self.xpath = xpath
|
||||
self.timeout = timeout
|
||||
|
||||
class TitleNotFound(Exception):
|
||||
def __init__(self, title, timeout):
|
||||
super().__init__(f"Web Page with \"{title}\" title is not loaded in {timeout} second.")
|
||||
self.title = title
|
||||
self.timeout = timeout
|
||||
@@ -1,29 +1,51 @@
|
||||
from selenium.common import TimeoutException
|
||||
from selenium.webdriver.support.wait import WebDriverWait
|
||||
from selenium.webdriver.support import expected_conditions as ec
|
||||
|
||||
|
||||
def get_clickable_element(driver, By, element_id):
|
||||
return WebDriverWait(driver, timeout=50).until(
|
||||
ec.element_to_be_clickable((By, element_id))
|
||||
)
|
||||
from tests.conftest import config
|
||||
from utils.CustomException import NoElementFound, TitleNotFound
|
||||
|
||||
|
||||
def get_element(driver, By, element_id):
|
||||
return WebDriverWait(driver, timeout=50).until(
|
||||
ec.visibility_of_element_located((By, element_id))
|
||||
)
|
||||
def get_clickable_element(driver, config, By, element_id):
|
||||
|
||||
try:
|
||||
element = WebDriverWait(driver, timeout=config['timeout']).until(
|
||||
ec.element_to_be_clickable((By, element_id))
|
||||
)
|
||||
except TimeoutException:
|
||||
# print("NoElement")
|
||||
raise NoElementFound(element_id, config['timeout'])
|
||||
return element
|
||||
|
||||
|
||||
def get_invisible_element(driver, By, element_id):
|
||||
return WebDriverWait(driver, timeout=50).until(
|
||||
ec.presence_of_element_located((By, element_id))
|
||||
)
|
||||
def get_element(driver, config, By, element_id):
|
||||
try:
|
||||
return WebDriverWait(driver, timeout=config['timeout']).until(
|
||||
ec.visibility_of_element_located((By, element_id))
|
||||
)
|
||||
except TimeoutException:
|
||||
# print("NoElement")
|
||||
raise NoElementFound(element_id, config['timeout'])
|
||||
|
||||
|
||||
def get_title(driver, title):
|
||||
return WebDriverWait(driver, timeout=50).until(
|
||||
ec.title_contains(title)
|
||||
)
|
||||
def get_invisible_element(driver, config, By, element_id):
|
||||
try:
|
||||
return WebDriverWait(driver, timeout=config['timeout']).until(
|
||||
ec.presence_of_element_located((By, element_id))
|
||||
)
|
||||
except TimeoutException:
|
||||
# print("NoElement")
|
||||
raise NoElementFound(element_id, config['timeout'])
|
||||
|
||||
|
||||
def get_title(driver, config, title):
|
||||
try:
|
||||
return WebDriverWait(driver, timeout=config['timeout']).until(
|
||||
ec.title_contains(title)
|
||||
)
|
||||
except TimeoutException:
|
||||
# print("NoElement")
|
||||
raise TitleNotFound(title, config['timeout'])
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,30 @@
|
||||
import yaml
|
||||
import pandas as pd
|
||||
import os
|
||||
|
||||
from utils.CustomException import NoYamlFile
|
||||
|
||||
|
||||
def read_yaml(file_path):
|
||||
with open (file_path, 'r') as file:
|
||||
return yaml.safe_load(file)
|
||||
def read_yaml(file_path, file_name):
|
||||
try:
|
||||
with open(file_path+file_name, 'r') as file:
|
||||
return yaml.safe_load(file)
|
||||
except Exception as e:
|
||||
raise NoYamlFile(file_path, file_name)
|
||||
|
||||
|
||||
def read_excel(file_path, sheet_name, col_name):
|
||||
df = pd.read_excel(file_path, usecols=col_name, sheet_name=sheet_name)
|
||||
if len(col_name) == 1:
|
||||
data = [val[0] for val in df.values]
|
||||
else:
|
||||
data = [tuple(row) for row in df.values]
|
||||
return data
|
||||
|
||||
|
||||
def read_files(folder_path):
|
||||
file_paths = []
|
||||
for root, dirs, files in os.walk(folder_path):
|
||||
for file in files:
|
||||
file_paths.append(os.path.join(root, file))
|
||||
return file_paths
|
||||
|
||||
@@ -16,6 +16,3 @@ def pytest_runtest_makereport(item, call):
|
||||
# """Set the title of the HTML report dynamically."""
|
||||
# current_datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
# report.title = f"Test Report {current_datetime}"
|
||||
|
||||
def pytest_html_report_title(report):
|
||||
report.title = "My very own title!"
|
||||
Reference in New Issue
Block a user