def test_hydrating_is_observed(self):
        DB.begin_transaction("dev")
        user = Observer.hydrate({"id": 10, "name": "joe"})

        self.assertEqual(TestM.observed_hydrating, 1)
        self.assertEqual(TestM.observed_hydrated, 1)
        DB.rollback("dev")
    def test_should_return_connection_with_enabled_logs(self):

        connection = DB.begin_transaction("dev")
        should_log_queries = connection.full_details.get("log_queries")
        DB.commit("dev")

        self.assertTrue(should_log_queries)
    def test_associate_records(self):
        DB.begin_transaction("dev")
        user = User.first()

        articles = [Articles.hydrate({"id": 1, "title": "associate records"})]

        user.save_many("articles", articles)
        DB.rollback("dev")
    def test_should_disable_log_queries_in_connection(self):

        connection = DB.begin_transaction("dev")
        connection.disable_query_log()

        should_log_queries = connection.full_details.get("log_queries")

        self.assertFalse(should_log_queries)

        connection.enable_query_log()
        should_log_queries = connection.full_details.get("log_queries")

        DB.commit("dev")

        self.assertTrue(should_log_queries)
 def test_transaction_globally(self):
     connection = DB.begin_transaction("dev")
     self.assertEqual(connection, self.get_builder().new_connection())
     DB.commit("dev")
     DB.begin_transaction("dev")
     DB.rollback("dev")
    __connection__ = "dev"

    @morph_to("record_type", "record_id")
    def record(self):
        return self


class User(Model):

    __connection__ = "dev"

    _eager_loads = ()


DB.morph_map({"user": User, "article": Articles})


class TestRelationships(unittest.TestCase):
    maxDiff = None

    def test_can_get_polymorphic_relation(self):
        likes = Like.get()
        for like in likes:
            self.assertIsInstance(like.record, (Articles, User))

    def test_can_get_eager_load_polymorphic_relation(self):
        likes = Like.with_("record").get()
        for like in likes:
            self.assertIsInstance(like.record, (Articles, User))