From 40bf5b99528ef7649cff982b5fb5e6fc670b5459 Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Wed, 4 Sep 2024 20:00:56 +0530 Subject: [PATCH 1/4] feat:utg support --- flask-mongo/.coverage | Bin 0 -> 53248 bytes flask-mongo/__pycache__/app.cpython-312.pyc | Bin 0 -> 2735 bytes .../test_app.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 7542 bytes flask-mongo/app.py | 2 +- flask-mongo/coverage.xml | 52 ++++++++ flask-mongo/keploy-logs.txt | 36 ++++++ flask-mongo/test/test_app.py | 0 flask-mongo/test_app.py | 121 +++++++++++------- 8 files changed, 165 insertions(+), 46 deletions(-) create mode 100644 flask-mongo/.coverage create mode 100644 flask-mongo/__pycache__/app.cpython-312.pyc create mode 100644 flask-mongo/__pycache__/test_app.cpython-312-pytest-8.3.2.pyc create mode 100644 flask-mongo/coverage.xml create mode 100755 flask-mongo/keploy-logs.txt create mode 100644 flask-mongo/test/test_app.py diff --git a/flask-mongo/.coverage b/flask-mongo/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..b8c205183e43058d3a893dad96db1c7d5af14f76 GIT binary patch literal 53248 zcmeI)O>Y}T7zglOJGE=a))qyTiJ~fVfi!9yH$nmd2M9E(Dk_yi;ev!aUXSA?-d%TR zoyG@*+#*#1@eNSFM&ZJD;3IJBtwJiN_Q3P(?8bH*S3Ov&3;$K@taoQ-pZU$3-{dc^ zU-e=oI$`9?SiEDMv25G=SP09qN_4BzE!&E;vy?rc|MtZGtlg5eefV?L`P!-!ezBZy ztJj=*<=5)l%YRn<(of6xi?Za>32YF600bcL{}vcsuM}&mtM;AmW7+DdIFhc4%zgFK zFZOnC?1>w@pIqG&=9oBN7PQstVpl}rZP8be=y*LPyrAv5GWLRf5qDLVdZ1OC7dkpd zOC2ZNPV)0!(`!?%SnX30{mAoWG!zGFxRoSGuNJGL*c_ljl(!#n3UNNoz9}NrQIQH< zrA-v)z4m5#^X?DjVr^x`zNeBp$;hR@<*C}xfpJx?bf_RVjM^N1E0TfRReDRv;~Kgl z#d#E)+D4(@h(poyf~1;(_F^v#ggR30AXe=YE4amI*+zJiwV|?Za)oZ1oawbDbjF!a z$eAWjGj}MsAk0|D8TrzbIf*$K_$?y;Zs7O1aVUqma2(FcIV*1*rj>o^wmG3K$Mv0R z&WxN})Z`ij-mQT;Zu~7V&bgITBM7$ySAu%LTg!#o`zy9Zy;2?NTRnQd)s%xcOddC> z@tZqzSNZXc)5Y5Qx_$3f(ovYF+45q2yi=O$G{=W$bR9lFyWj9AneHS!ih4Z}c9J2( zxrJ#Q>dlj5rjcRDhzFVo(}Wc1EA4F@EX5#Ny|6Xi*ODHi6%7!Y3$kRLLE!RG(Od^N zJXDd~SKH}XGcCO8jznE&r&Orztrcnmg&v=}~d1SUY>x9+?rr z^Ag`qO;v)AjEBH83&G2W-1-zofSBT(A?qs!rgCjNyztB6Mdg1 zeZJ+VLgpjmkUvwy`l0O6Y|@urL_?P5V6y@UPS}=|Shm7Job+FQm~>BGd&cpa0>+Os zdrGyLB&Xs1d8oBV%PKEh`h)DK*yu{lvyk2ptuX8<8JM+!a$M1LO;3v?hUZtMkH%%_ zA(yd#xRJz^EiOFG-=IO4jW62qeHpaV^@^8aQ!35yrXl)FnOULf zS)Q@7^0)hB!lnAMZH7BH%0!8`yXv{(%xZK=#wzxFB{)eEOwzG#OD)_;(MeiMH#hPx z>IU3e%^kkySIMXOsoZGYF4itwut$S*Fq(O$scBL7Wfpe&FgMjno;f-0FV|?orDr>n z{eJWvPLV7uQdHcLSra( z_n=F^$I`eIx&vPYv2GlwelHw0wDkKurR)7++zo?9rziD6-4BEPup#?>`n?4H{NHwd zv*-^S1Rwwb2tWV=5P$##AOHafKmY;@CUALav{IVG>wo|0uX=z1Rwwb2tWV=5P$##<|9zHmrA8K@BjYyACFF%&;OrT&Xf6+ zjZz>00SG_<0uX=z1Rwwb2tWV=5LhUIC3+Vi`TXBHvrus%7zjWB0uX=z1Rwwb2tWV= z5P$##<}ARU|Ks)loKaC61Rwwb2tWV=5P$##AOHafKw!ZH@caJ@)*uK60uX=z1Rwwb U2tWV=5P$##ATVEn7fK6vt=1vtEBBHY84hlTZSbf=z;fs)VnEN+AujX+R{1))&k1Op;C3UNgH^ zWh+QVtwfG+3dbB%C5Ie2RUDCeaq3j0TTm;tm#UYb+&J~ke)xmpcB0I_oq6xg&Ts#3 z)<3ql2N1Ns@9ob0AR+Vzzj2$_G4`Je2(2Q5h@hgZkQB0>q$evTMS+ibRGgKPl4Xmk zH!CM)%f_lN>GvQi(7*=7^Og+4y-b5dB3>dZf+B4CHayN;8_Y?>U-NCJ?IaN8Q6U;4 zLCXr$;Nnr+zp*E6qVA~{0dP(1A|AuJa3#f>TICl6iej5`_ z=`%I0FPSo<_X|`vOnFh)a>`sWCYZr5wcNZmrYbaNz%3rTb!U32~!7jm;v1=5J;z!S<~m*C4a&- zO>ts;2GYq{YAk3(&)5%b_cC1gF7}hqts=wG5kiKe8iW=>weL0sluA5`;OfEE)B|Mj zj8I? zcXi72L@})|EG?uNO_w=iUp1HSn)`J&l2 zPmPqjD(iy8VZK5Px-$AR+_@7u`7$!N9T{A|vvuOx!L8nEv=uUZp0~xLc`zpAPb@M#<_O0oeCT(FDwzfY9M$`6d z+JXtEfpWON)fQ_Saz_xVt4TnH-yL^U=s>r120GXE^gJ!~PuqntkYO}!P%@wwGEhwV zTtQWfF^Tc@Ow4Q3h8BRzqs*vdgL2K$Z)$q6bZA2h*(u#Ab_`PS^HYyQ2i!WMtAkGl z%U`_0JumUGZG3F)$_`F&W;ZKGMk<}7)!?-XzGjmXZ{MAHzi#r7?SH`u{|(O7)iQhx z+;VL~C=v`ab%fHCrIr%@P^Sj_03M-EvXCdONU|f~>43D|>L4Bcg`IF0o8G9ykQ3x+ zl%0fhJf(gCIzZZecvXF(mT%ROPHx33$48!fUxX{yzS_ZGx4`SYK0Y}An(tqjCsnmcyS!X3!^zB2>5u4-Uk~s~}d;(RDd&sUnacRD7c*e_zyZ#5#>>_W*UxhOOnNqB1{(%Uc!XR!OH(ORgd^F+ zJkIoHtnZ=eA+xrCB&HP%YMsy4k!01Er3l71Z;Gst`yN@@_;_8uk5(y5D$_+_rM#TdgeqA_rH-p59#dZ+%=jIb7+xxFcUG zV{iy`Rl3eq{pZWxT`9OSxh+M@p55+4PkW!_DyZ{!0Y8d9jILZ+>sph`(W-FjjmIM# z-WQQ4w#ThKAM!}tr4l^8PS@{opHH|?Kli!7efn!YkfwXh$6aD?JfiTaz7&-6`tk(kh@EY)SqRmw#>G18m6{nS+X5FR+}KU6ZSJpm&%2h%Mm5O9W64yvc z&POCtQf5@i>(OR3=!q1grPxfYq|fN$zFag)=8P%oN-o zb0$f(%VZ`+qab@}Oh_GMA2mSs*QJbk4|S(A5m!B3%<&7ZGS4gJjO3c%tCY`IUMUu= zvJFi+SFPs5SqRaf@pbsF&4M^bB-olQ1q$=Qrh^-B4Hk8nG>Jog7P%^k?ZCEg`q~ny z!;s^IOABC>H(^Y?b5VYiEJz>83sOeHb?URY&Md6QHEoOA*?h1@&8u--Mtc3s*blhH z_*gy1=Pu0Um^F5?lCPCuJACYdRV`NPV?0-?7A=0DTDRvavl^ec5V`s?VplyBJ!6r%8z;k$MQB)le4Q*y|By9RV(p%F*=1^H#yHQ@Y#TqmQ43p6Yt5`(vu7*KvIO&otL~&L2bSofrv!R5dR=b7{+k+&QQgrB zl4wQk-e4tdBlQLM!mASvMhdR)z|Z-j)Rf_?HWhm?(4F5A)WR#A*3PgM)Pj+kF-n@c z6La($Y08ewf8Ms1PG@E~GMt%-Pqdv`{HdK;ELd6BGizzWnZ?^y-RaEqU{sp89ud|z zXb(*~hJO~?w$DNfMhdRMSv2)J$)u)T`Pi{z>&6(jYgGL9@BIO6z9g+jrlyvp#>Bqo zs`Wz|Zd~#!>8Ui<4rcf$w{v!lXY&`F^+;N+&l{K87c6L)adg^P8YaPm;eQZ=ImT1!tk9z?TJSF5HK4Xf}TvmmCswY zYqqV)HC_VXLIlh)w>O*56^mJBRaw4Lssh}(ap=yzRVx(jLYcc-u>u<0-I?Wcm0FPs z)$I9V<*i&XTh5g%SI_d?tc4@EJui!06e{IYj8&N1pPj9+QqIm=7puiwIcGx;Lws=6 zVkJj8`wFhn6d>suzNxbX%KA~q#D#cv8E(>goPO3{8aoIoh*11v5Q}7`cgNz{mE_?2jVq07XKyra6mJbr zEGH)y&)iX-z5SFve>IcuAHQ<^gSo4vpO%)*XBJQ1QHE|m>F3YN&>F0rbao;=Ehj=F zRHh15ugl;lIy)52b0|*aH_^ZqBlL81DhiE(D*;C#oQmdXU7ZR5EC7^&&$I!Q`P2Za z1^-yc@wDy6CmQoA&u` zAWr+~fD`wvm)N%T62XkY)wiAj)-#)0oh%JbvjkY6(LWvHLHZ5PE8H7_9yj{>T%8y4 zJR`e`Ktwrr-g4DaZoa}8ZgWWzpvRI>XDJlO4g|=_jMP&|tQ;hKE|1%mZbk4I~P8WK0@udM}-2-_@!;&~L`M6n+QlHZ5m z_#hjF+wGWqxV>?dqwPX`#+rxGdj&>&lXryaGw>i9cJ22de3-tQ+P9MIUFjXZA6165 z#n)C1lG?EWxIZ3yud$pw`(Fp|6StMe_}o%XuyNSNmw+AoM85=VcpWyBz%md4{NDpM zn*h_Wmr=X|;!z;N5F>;T@b?{TJ^E*+`Mjvbij+r&*}#h0_|T(+?AT)l*}4d_A#B?a zWIsJV^khMHH$K$jPF*~Di#N6SkS6%h7c9tjVm=?zfe)z;oQdE=hGT4l4;g|F;W@UF zBwei13U|Bcg={k5L#E(Erq74s+vY>@07`24{;&(A`W!|#kWzs z1OmcdrCQ;ii|J$%URY|Dt%b)RIP4TI0*MVfjp9`h90}wGBIEIxe!*kBO|_z(>Dr4Q{_wp^%gJN^QFhhCA$heu%vNh}Lb$8$Q#?(joG0trsHi zfFFsPbdc_FLgd}9^|~YP5Fjt4`A%9z%eGqJi&k}`XCP5kVRiNzwAkw?1j6F$=0Wje zV=WcaY>YcQVr>umJ}yD?9{4=LWdONxfr~-T4Gp+;Q2F?n>#engxic`u6nyz#KrE6~ zjSLO1q|$!8sH+3o;&%acRrB3*Z=d_Xys>}r+@F*&Py-xpUTI!ye7OI&&L_{Gyp=h1 zYtQNB$YyWQU9Ju8n~MGh^vY} zz8FHXm(-0`>*8N9hJU;;ObRjlJ-X4^!bQ8rEH8C{&dp=r=;|2Se#ztB!Yi)FPLwLN zRJ%zB literal 0 HcmV?d00001 diff --git a/flask-mongo/app.py b/flask-mongo/app.py index 6f7172f..42a502c 100644 --- a/flask-mongo/app.py +++ b/flask-mongo/app.py @@ -8,7 +8,7 @@ cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) # Connect to MongoDB -client = MongoClient('mongodb://mongo:27017/') +client = MongoClient('mongodb://localhost:27017/') db = client['studentsdb'] students_collection = db['students'] diff --git a/flask-mongo/coverage.xml b/flask-mongo/coverage.xml new file mode 100644 index 0000000..f5d4434 --- /dev/null +++ b/flask-mongo/coverage.xml @@ -0,0 +1,52 @@ + + + + + + /Users/yashkhare/Documents/keploy/samples-python/flask-mongo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flask-mongo/keploy-logs.txt b/flask-mongo/keploy-logs.txt new file mode 100755 index 0000000..13df0d7 --- /dev/null +++ b/flask-mongo/keploy-logs.txt @@ -0,0 +1,36 @@ +🐰 Keploy: 2024-09-04T19:57:40+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T19:57:40+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:58:25+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T19:58:25+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:58:49+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T19:58:49+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:10+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T19:59:10+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Total token used count for LLM model gpt-4o: 1271 +🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Validating new generated tests one by one +🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Iteration no: 1 +🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Test failed in 1 iteration +🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Skipping a generated test that failed +🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Iteration no: 1 +🐰 Keploy: 2024-09-04T19:59:35+05:30 INFO Iteration no: 2 +🐰 Keploy: 2024-09-04T19:59:36+05:30 INFO Iteration no: 3 +🐰 Keploy: 2024-09-04T19:59:37+05:30 INFO Iteration no: 4 +🐰 Keploy: 2024-09-04T19:59:39+05:30 INFO Iteration no: 5 +🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Generated test passed and increased coverage +🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Iteration no: 1 +🐰 Keploy: 2024-09-04T19:59:41+05:30 INFO Iteration no: 2 +🐰 Keploy: 2024-09-04T19:59:43+05:30 INFO Iteration no: 3 +🐰 Keploy: 2024-09-04T19:59:44+05:30 INFO Iteration no: 4 +🐰 Keploy: 2024-09-04T19:59:45+05:30 INFO Iteration no: 5 +🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Generated test passed and increased coverage +🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Iteration no: 1 +🐰 Keploy: 2024-09-04T19:59:48+05:30 INFO Iteration no: 2 +🐰 Keploy: 2024-09-04T19:59:49+05:30 INFO Iteration no: 3 +🐰 Keploy: 2024-09-04T19:59:50+05:30 INFO Iteration no: 4 +🐰 Keploy: 2024-09-04T19:59:52+05:30 INFO Iteration no: 5 +🐰 Keploy: 2024-09-04T19:59:53+05:30 INFO Skipping a generated test that failed to increase coverage +🐰 Keploy: 2024-09-04T19:59:53+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' diff --git a/flask-mongo/test/test_app.py b/flask-mongo/test/test_app.py new file mode 100644 index 0000000..e69de29 diff --git a/flask-mongo/test_app.py b/flask-mongo/test_app.py index 30cf13f..9d3a0ec 100644 --- a/flask-mongo/test_app.py +++ b/flask-mongo/test_app.py @@ -1,45 +1,76 @@ -import unittest -from app import app -from unittest.mock import patch, MagicMock -import json -from bson import ObjectId - -class TestTaskManager(unittest.TestCase): - - def setUp(self): - self.app = app.test_client() - self.app.testing = True - - self.collection_mock = MagicMock() - self.patcher = patch('app.collection', self.collection_mock) - self.patcher.start() - - def tearDown(self): - self.patcher.stop() - - def test_create_task(self): - data = {'title': 'Test Task', 'description': 'This is a test task'} - response = self.app.post('/api/tasks', json=data) - self.assertEqual(response.status_code, 201) - self.assertIn(b'Task created successfully', response.data) - - def test_get_all_tasks(self): - self.collection_mock.find.return_value = [] - response = self.app.get('/api/tasks') - self.assertEqual(response.status_code, 200) - self.assertEqual(json.loads(response.data)['tasks'], []) - - def test_update_task(self): - with patch('app.ObjectId', return_value='mocked_id'): - response = self.app.put('/api/tasks/mock_id', json={'title': 'Updated Task', 'description': 'This is an updated task'}) - self.assertEqual(response.status_code, 200) - self.assertIn(b'Task updated successfully', response.data) - - def test_delete_task(self): - with patch('app.ObjectId', return_value=ObjectId()): - response = self.app.delete('/api/tasks/mock_id') - self.assertEqual(response.status_code, 200) - self.assertIn(b'Task deleted successfully', response.data) - -if __name__ == '__main__': - unittest.main() +import pytest +from flask import Flask, json +from pymongo import MongoClient +from app import app as flask_app # Assuming your Flask app is saved as app.py + +@pytest.fixture +def client(): + with flask_app.test_client() as client: + yield client + + +def test_get_nonexistent_student(client): + student_id = '999' + response = client.get(f'/students/{student_id}') + assert response.status_code == 200 + data = json.loads(response.data) + assert data is None + + +def test_update_nonexistent_student(client): + student_id = '999' + updated_student = { + "name": "Nonexistent Student", + "age": 30, + "major": "Physics" + } + response = client.put(f'/students/{student_id}', json=updated_student) + assert response.status_code == 200 + data = json.loads(response.data) + assert data["message"] == "Student updated successfully" + + +def test_update_nonexistent_student(client): + student_id = '999' + updated_student = { + "name": "Nonexistent Student", + "age": 30, + "major": "Physics" + } + response = client.put(f'/students/{student_id}', json=updated_student) + assert response.status_code == 200 + data = json.loads(response.data) + assert data["message"] == "Student updated successfully" + + + + +def test_create_student(client): + new_student = { + "student_id": "2", + "name": "New Student", + "age": 22, + "major": "Mathematics" + } + response = client.post('/students', json=new_student) + assert response.status_code == 200 + data = json.loads(response.data) + assert data["message"] == "Student created successfully" + + +def test_delete_student(client): + # Insert a test student + test_student = { + "student_id": "3", + "name": "Delete Student", + "age": 23, + "major": "History" + } + client.post('/students', json=test_student) + + # Delete the test student + response = client.delete(f'/students/{test_student["student_id"]}') + assert response.status_code == 200 + data = json.loads(response.data) + assert data["message"] == "Student deleted successfully" + From 4e4ddaf7cffa9d5f13ad88b27219e81df2b60f0c Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Wed, 4 Sep 2024 20:06:22 +0530 Subject: [PATCH 2/4] feat:utg support --- flask-mongo/.coverage | Bin 53248 -> 53248 bytes .../test_app.cpython-312-pytest-8.3.2.pyc | Bin 7542 -> 3847 bytes flask-mongo/coverage.xml | 16 +++---- flask-mongo/keploy-logs.txt | 40 ++-------------- flask-mongo/test_app.py | 44 ------------------ 5 files changed, 12 insertions(+), 88 deletions(-) diff --git a/flask-mongo/.coverage b/flask-mongo/.coverage index b8c205183e43058d3a893dad96db1c7d5af14f76..2a41e55db2a94f369a0501b7dd29722beeb864da 100644 GIT binary patch delta 16 XcmZozz}&EadBfj+=C*v6MH3tVJhBGy delta 16 YcmZozz}&EadBfj+=6&y37fo;g06>NZssI20 diff --git a/flask-mongo/__pycache__/test_app.cpython-312-pytest-8.3.2.pyc b/flask-mongo/__pycache__/test_app.cpython-312-pytest-8.3.2.pyc index f7a534100e3d9a0a3d3bf0b625b676409bc320a1..56505957f9562e97597838785dfd43073585020f 100644 GIT binary patch delta 189 zcmexn)h@?(nwOW00SE#MZlt9#PvnzetedD_&r->#$+201HjV zDj`*kf=WZpVg*}U1rXCjvsjbq7Bf%`M3_|ZB^DQ_7L|bI%ruKZf@YeN3wfM?Mr`3( z%IOHSN(6|DCnxcqX3`XzTrAU}3KCq&P-F delta 1712 zcmbW1?`vCC7{~9qH#fPzlQe1ChNinkHyhooTT8cYOYQ8Bb<}ko!#DFqEjhQ?n6>lV zTV~RGX$C^KS9Y8i4y@n=VX+E|Aowphkjcb_ym0zX!57^MB7Nm^ZjvU{3F;yDlXISP zp68sy{eJIy&mSj^d%CW0(0*B}EKEqZj83$1>$$ZAmfqzqN3jfS!wN7~Kxy^MPk&WV znNoEO_)wiaQAWkKgMC*EN7J^M$(XD=n6}G&Re%`7;I1)m+ZJ*BxuLYpfJ!3b0LJ7D!x(_-dgmL2t@F{#I_DUU0|a&S&pU5gSLU6?tX&QeI0Q$A7>+ZX0PM>Bb}hpu!?da% z8X+ekT8BZ9W*7ye^=jbivQ4ozqUwZcsH!em z*XY;U3u|P8t$LARlHn}C)&XW~BPv9yF~_o}GG`+2Hk;HqeH&<_;y8HT#)d%6>($u5Cp@-~8{|t50?a;IIJN^9H(*-j4 zp9KO3frdDc5tG=yh9wtanQ7ny?nA!uPCecg_*{U#&9|RZyZ}>_FAUKY?av*iR=?$> zMz8sgRbPb~%VDCa&0yV8>5SY>M`ay_=mjCg)M=3RmSPclU5G(g)Ahea^Max_w`D6+ zM~po=hjGLW)^!(hVvWPJREhhwe-cc!qcNN7WHGpAk|Gqd>T32R@I - + /Users/yashkhare/Documents/keploy/samples-python/flask-mongo - + - + @@ -30,9 +30,9 @@ - - - + + + @@ -40,8 +40,8 @@ - - + + diff --git a/flask-mongo/keploy-logs.txt b/flask-mongo/keploy-logs.txt index 13df0d7..c845ed6 100755 --- a/flask-mongo/keploy-logs.txt +++ b/flask-mongo/keploy-logs.txt @@ -1,36 +1,4 @@ -🐰 Keploy: 2024-09-04T19:57:40+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T19:57:40+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:58:25+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T19:58:25+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:58:49+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T19:58:49+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:10+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T19:59:10+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Total token used count for LLM model gpt-4o: 1271 -🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Validating new generated tests one by one -🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:32+05:30 INFO Iteration no: 1 -🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Test failed in 1 iteration -🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Skipping a generated test that failed -🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:34+05:30 INFO Iteration no: 1 -🐰 Keploy: 2024-09-04T19:59:35+05:30 INFO Iteration no: 2 -🐰 Keploy: 2024-09-04T19:59:36+05:30 INFO Iteration no: 3 -🐰 Keploy: 2024-09-04T19:59:37+05:30 INFO Iteration no: 4 -🐰 Keploy: 2024-09-04T19:59:39+05:30 INFO Iteration no: 5 -🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Generated test passed and increased coverage -🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:40+05:30 INFO Iteration no: 1 -🐰 Keploy: 2024-09-04T19:59:41+05:30 INFO Iteration no: 2 -🐰 Keploy: 2024-09-04T19:59:43+05:30 INFO Iteration no: 3 -🐰 Keploy: 2024-09-04T19:59:44+05:30 INFO Iteration no: 4 -🐰 Keploy: 2024-09-04T19:59:45+05:30 INFO Iteration no: 5 -🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Generated test passed and increased coverage -🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Running test 5 times for proper validation with the following command: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T19:59:46+05:30 INFO Iteration no: 1 -🐰 Keploy: 2024-09-04T19:59:48+05:30 INFO Iteration no: 2 -🐰 Keploy: 2024-09-04T19:59:49+05:30 INFO Iteration no: 3 -🐰 Keploy: 2024-09-04T19:59:50+05:30 INFO Iteration no: 4 -🐰 Keploy: 2024-09-04T19:59:52+05:30 INFO Iteration no: 5 -🐰 Keploy: 2024-09-04T19:59:53+05:30 INFO Skipping a generated test that failed to increase coverage -🐰 Keploy: 2024-09-04T19:59:53+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T20:05:35+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T20:05:35+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' +🐰 Keploy: 2024-09-04T20:06:08+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py +🐰 Keploy: 2024-09-04T20:06:08+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' diff --git a/flask-mongo/test_app.py b/flask-mongo/test_app.py index 9d3a0ec..f07148a 100644 --- a/flask-mongo/test_app.py +++ b/flask-mongo/test_app.py @@ -30,47 +30,3 @@ def test_update_nonexistent_student(client): assert data["message"] == "Student updated successfully" -def test_update_nonexistent_student(client): - student_id = '999' - updated_student = { - "name": "Nonexistent Student", - "age": 30, - "major": "Physics" - } - response = client.put(f'/students/{student_id}', json=updated_student) - assert response.status_code == 200 - data = json.loads(response.data) - assert data["message"] == "Student updated successfully" - - - - -def test_create_student(client): - new_student = { - "student_id": "2", - "name": "New Student", - "age": 22, - "major": "Mathematics" - } - response = client.post('/students', json=new_student) - assert response.status_code == 200 - data = json.loads(response.data) - assert data["message"] == "Student created successfully" - - -def test_delete_student(client): - # Insert a test student - test_student = { - "student_id": "3", - "name": "Delete Student", - "age": 23, - "major": "History" - } - client.post('/students', json=test_student) - - # Delete the test student - response = client.delete(f'/students/{test_student["student_id"]}') - assert response.status_code == 200 - data = json.loads(response.data) - assert data["message"] == "Student deleted successfully" - From 67b6ee7cbaee2f92762a95332102dfc05b8d3169 Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Wed, 4 Sep 2024 20:07:03 +0530 Subject: [PATCH 3/4] feat:utg support --- flask-mongo/.coverage | Bin 53248 -> 0 bytes flask-mongo/__pycache__/app.cpython-312.pyc | Bin 2735 -> 0 bytes .../test_app.cpython-312-pytest-8.3.2.pyc | Bin 3847 -> 0 bytes flask-mongo/coverage.xml | 52 ------------------ flask-mongo/keploy-logs.txt | 4 -- flask-mongo/test/test_app.py | 0 6 files changed, 56 deletions(-) delete mode 100644 flask-mongo/.coverage delete mode 100644 flask-mongo/__pycache__/app.cpython-312.pyc delete mode 100644 flask-mongo/__pycache__/test_app.cpython-312-pytest-8.3.2.pyc delete mode 100644 flask-mongo/coverage.xml delete mode 100755 flask-mongo/keploy-logs.txt delete mode 100644 flask-mongo/test/test_app.py diff --git a/flask-mongo/.coverage b/flask-mongo/.coverage deleted file mode 100644 index 2a41e55db2a94f369a0501b7dd29722beeb864da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 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 diff --git a/flask-mongo/coverage.xml b/flask-mongo/coverage.xml deleted file mode 100644 index 6b6e78c..0000000 --- a/flask-mongo/coverage.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - /Users/yashkhare/Documents/keploy/samples-python/flask-mongo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/flask-mongo/keploy-logs.txt b/flask-mongo/keploy-logs.txt deleted file mode 100755 index c845ed6..0000000 --- a/flask-mongo/keploy-logs.txt +++ /dev/null @@ -1,4 +0,0 @@ -🐰 Keploy: 2024-09-04T20:05:35+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T20:05:35+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' -🐰 Keploy: 2024-09-04T20:06:08+05:30 INFO Generating tests for file: /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/app.py -🐰 Keploy: 2024-09-04T20:06:08+05:30 INFO Running test command to generate coverage report: 'pytest --cov=app --cov-report=xml:coverage.xml /Users/yashkhare/Documents/keploy/samples-python/flask-mongo/test_app.py' diff --git a/flask-mongo/test/test_app.py b/flask-mongo/test/test_app.py deleted file mode 100644 index e69de29..0000000 From 14631594522814ba201fbebaee07d25b3688520c Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Thu, 5 Sep 2024 18:34:39 +0530 Subject: [PATCH 4/4] Update app.py --- flask-mongo/app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flask-mongo/app.py b/flask-mongo/app.py index 42a502c..8a6418b 100644 --- a/flask-mongo/app.py +++ b/flask-mongo/app.py @@ -8,7 +8,7 @@ cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) # Connect to MongoDB -client = MongoClient('mongodb://localhost:27017/') +client = MongoClient('mongodb://mongo:27017/') db = client['studentsdb'] students_collection = db['students'] @@ -40,4 +40,4 @@ def delete_student(student_id): return jsonify({'message': 'Student deleted successfully'}) if __name__ == '__main__': - app.run(host='0.0.0.0', port=6000, debug=True) \ No newline at end of file + app.run(host='0.0.0.0', port=6000, debug=True)