From 0623fe4bfd757afd977fc8340f0aa3abc2b2caf4 Mon Sep 17 00:00:00 2001 From: Yubaraj Shrestha Date: Tue, 7 Jun 2022 10:43:00 +0545 Subject: [PATCH] Added Test --- config/database.py | 2 +- masonite.sqlite3 | Bin 0 -> 28672 bytes src/masonite_audit/observer/audit_observer.py | 8 ++-- tests/unit/test_audit.py | 40 ++++++++++++++++++ 4 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 masonite.sqlite3 create mode 100644 tests/unit/test_audit.py diff --git a/config/database.py b/config/database.py index 83a9735..9d83023 100644 --- a/config/database.py +++ b/config/database.py @@ -9,7 +9,7 @@ They can be named whatever you want. """ DATABASES = { - "default": env("DB_CONNECTION", "postgres"), + "default": env("DB_CONNECTION", "sqlite"), "sqlite": { "driver": "sqlite", "database": env("SQLITE_DB_DATABASE", "masonite.sqlite3"), diff --git a/masonite.sqlite3 b/masonite.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..960e14002f51e0e946e804a6bee2f5f4b246d68a GIT binary patch literal 28672 zcmeI*Z%^As90%|-gk-FOOhQ#2RFe)5sfmEfPRQtxDm6_!mM#Qvk_lE-o=Fbyh~w0D zAXCKyU{YVmUe6wGuVIt+3ifDc8|NPh>oioP>T40=^PSJW&+lx>Hux&LCBtR((6UY4 zr5W-W5d`v_QbNcA|HSwwoFaV2`-GDa&fN07K%TtH&cz>+=YTQ^iIQYwWf9C^ygxERmoKqTFt#EDOBud zh%_l04UrbhRb^9AX?eR!%e7Kzg^G+1;MNxDmbX8dhs^e%)$z%$6h4mzC{uZ$(;AzRuN3Rr>ht`D4DTRdg+{(5>ZK?CibD)orG`tfA?yNDJJpTHI3ncK0@%uc@k1u4-ORrJCE?;d{|(H~#xt z`R#J0s^+*q?MH>PYHiyvb^9l}qZYSv>OTEe*{4aPkxE?|kys*;5Z=jtxH}HB9sk$N zaFG3Fx5W4Mz%Wxcnv>(w)*a`}vU$&$6j_JWtrl;_gn~gIvzf`v17>Tkb;53RgP=_N z*lOMAK|$6jvyDUJI#9h(ggx{FMp5L)0vp?7R_H*4{gB)i+!cP96?bb&(&ta5QZv!S zvxGp5R)ck&H%)$pr|BKn^3z&So$P-_FDg^9#PYIm`P%Omp}S@?hq=y3a(cL{jO2Qq z=3nAJHeUThpLN>?-|)=?h#w~7!_r%K7~t7-G_kup31DQuHF;!#cai&vcQ(HGLGVwJ zR}Xv~(>Stq@5JNu=ca~9`Wc=^FBP8fMo*T#0+SDj1Kq73k2}*2bdX*(j@Fx<*k1-q zq*8OdnbUEX#D9(d!oM&<00Izz00bZa0SG_<0uX=z1R!un0;|&zqRpnIbXt?vw6v_r zvLt7pYQZfIey1k96RY{R9g^N0SJAOHafKmY;|fB*y_009U<00I#Bhy_0N+J@`@k2u0;8U!E!0SG_<0uX=z z1Rwwb2ta_4@cDoI3>pxC00bZa0SG_<0uX=z1Rwwb2;8y2MO2t0k5(^cym~Vkvfnw- zZT&~@Z~33Iu5PxQ>`C1+m(mAIvb2=m-a9PG-L7h#?(H;k`NEc3-eZ!?UaTFjv5I8M zQo%LY%k}S1Hmy!}^J(kk^o{rb1*_7RtI|4^);6;18=3Vni^Avs@xSi4g{Te!5P$## zAOHafKmY;|fB*y_0D*fESeRa&9lgU4KL4Nl<6d?N8-)M_AOHafKmY;|fB*y_0D(Ie z`1zqQPsnWI(dFXh%++!xbXD literal 0 HcmV?d00001 diff --git a/src/masonite_audit/observer/audit_observer.py b/src/masonite_audit/observer/audit_observer.py index 68e449b..985e8c7 100644 --- a/src/masonite_audit/observer/audit_observer.py +++ b/src/masonite_audit/observer/audit_observer.py @@ -13,10 +13,10 @@ def _parse_model(self, model, action): old_value = model.__original_attributes__ for key in new_value: - if isinstance(new_value[key], datetime): - new_value[key] = new_value[key].to_datetime_string() - if isinstance(old_value[key], datetime): - old_value[key] = old_value[key].to_datetime_string() + if isinstance(new_value.get(key), datetime): + new_value[key] = new_value.get(key).to_datetime_string() + if isinstance(old_value.get(key), datetime): + old_value[key] = old_value.get(key).to_datetime_string() data = { "action": action, diff --git a/tests/unit/test_audit.py b/tests/unit/test_audit.py new file mode 100644 index 0000000..99a599b --- /dev/null +++ b/tests/unit/test_audit.py @@ -0,0 +1,40 @@ +from masonite.tests import TestCase +from masoniteorm.query import QueryBuilder +from tests.integrations.app.models.User import User +from masonite.facades import Hash + + +class TestAudit(TestCase): + @classmethod + def setUpClass(cls): + QueryBuilder().table("audit_logs").truncate(True) + QueryBuilder().table("users").truncate(True) + + def tearDown(self): + super().tearDown() + QueryBuilder().table("audit_logs").truncate(True) + QueryBuilder().table("users").truncate(True) + + def test_audit_created(self): + user = User.create({ + "name": "Yubaraj", + "email": "user@example.com", + "password": Hash.make("secret"), + "phone": "+123456789", + }) + + self.assertDatabaseHas( + "users", + { + "email": "user@example.com", + }, + ) + + self.assertDatabaseHas( + "audit_logs", + { + "model_id": user.id, + "model_name": "users", + "action": "CREATED", + } + )