def test_can_get_accessor(self): user = User.hydrate( {"name": "joe", "email": "*****@*****.**", "is_admin": 1} ) self.assertEqual(user.email, "*****@*****.**") self.assertEqual(user.name, "Hello, joe") self.assertTrue(user.is_admin is True, f"{user.is_admin} is not True")
def test_serialize_with_model_appends(self): User.__appends__ = ["meta"] user = User.hydrate({"name": "Joe", "id": 1}) serialized = user.serialize() self.assertEqual(serialized["id"], 1) self.assertEqual(serialized["name"], "Joe") self.assertEqual(serialized["meta"]["is_subscribed"], True)
def test_set_as_date(self): user = User.hydrate({ "name": "Joe", "created_at": "2020-11-28 11:42:07" }) self.assertTrue(user.created_at) self.assertTrue(user.created_at.is_future())
def test_serialize_with_on_the_fly_appends(self): user = User.hydrate({"name": "Joe", "id": 1}) user.set_appends(["meta"]) serialized = user.serialize() self.assertEqual(serialized["id"], 1) self.assertEqual(serialized["name"], "Joe") self.assertEqual(serialized["meta"]["is_subscribed"], True)
def up(self): """Run the migrations.""" with self.schema.create('users') as table: table.increments('id') table.string('name') table.string('email').unique() table.string('password') table.string('second_password').nullable() table.string('remember_token').nullable() table.timestamp('verified_at').nullable() table.timestamps() if not self.schema._dry: User.on(self.connection).create({ 'name': 'Joe', 'email': '*****@*****.**', 'password': '******' })
def test_access_as_date(self): user = User.hydrate({ "name": "Joe", "created_at": datetime.datetime.now() + datetime.timedelta(days=1), }) self.assertTrue(user.created_at) self.assertTrue(user.created_at.is_future())
def test_set_as_date(self): user = User.hydrate({ "name": "Joe", "created_at": pendulum.now().add(days=10).to_datetime_string(), }) self.assertTrue(user.created_at) self.assertTrue(user.created_at.is_future())
def test_can_find_first(self): profile = User.find(1)
def test_serialize_with_date(self): user = User.hydrate({"name": "Joe", "created_at": pendulum.now()}) self.assertTrue(json.dumps(user.serialize()))
def test_active_scope(self): sql = "SELECT * FROM `users` WHERE `users`.`name` = 'joe' AND `users`.`active` = '1'" self.assertEqual(sql, User.where("name", "joe").active(1).to_sql())
def test_find_or_fail_raise_an_exception_if_not_exists(self): with self.assertRaises(ModelNotFound): User.find(100)
def test_can_chain_scopes(self): sql = "SELECT * FROM `users` WHERE `users`.`active` = '2' AND `users`.`gender` = 'W' AND `users`.`name` = 'joe'" self.assertEqual( sql, User.active(2).gender("W").where("name", "joe").to_sql())
def test_active_scope_with_params(self): sql = "SELECT * FROM `users` WHERE `users`.`active` = '2' AND `users`.`name` = 'joe'" self.assertEqual(sql, User.active(2).where("name", "joe").to_sql())
def test_serialize_with_model_appends(self): User.__appends__ = ["meta"] users = User.all().serialize() self.assertTrue(users[0].get("meta"))
def test_returns_correct_data_type(self): self.assertIsInstance(User.all(), Collection)
def test_serialize_with_on_the_fly_appends(self): users = User.all().set_appends(["meta"]).serialize() self.assertTrue(users[0].get("meta"))
def test_can_get_sql(self): sql = "SELECT * FROM `users` WHERE `users`.`name` = 'joe'" self.assertEqual(sql, User.where("name", "joe").to_sql())