コード例 #1
0
ファイル: one2many.py プロジェクト: rhythmus/rinohtype
    def test(self):
        for country_name, cities in self.data:
            new_country = country(name=country_name)

            self.ds.insert(new_country)

            for city_name in cities:
                new_country.cities.append(city(name=city_name))

        new_country.cities.append(city(name="Bremen"))

        # But Bremen is not an English town, is it?
        result = self.ds.select(
            city, sql.where("name=", sql.string_literal("Bremen")))
        bremen = result.next()

        result = self.ds.select(
            country, sql.where("name=", sql.string_literal("Germany")))
        germany = result.next()

        # this will update the foreign key in the city table
        bremen.country_id = germany.id
        self.ds.flush_updates()

        german_cities = germany.cities.select(sql.order_by("name"))
        names = map(lambda c: c.name, list(german_cities))
        self.assertEqual(
            names, [u"Berlin", u"Bremen", u"Hamburg", u"München", u"Witten"])

        bremen_where = sql.where("name='Bremen'")
        self.assertEqual(len(germany.cities), 5)
        self.assertEqual(germany.cities.len(bremen_where), 1)

        bremen = germany.cities.select(bremen_where).next()
        self.assertEqual(bremen.name, u"Bremen")
コード例 #2
0
ファイル: one2many.py プロジェクト: dvorberg/t4
    def test(self):
        for country_name, cities in self.data:
            new_country = country(name=country_name)

            self.ds.insert(new_country)

            for city_name in cities:
                new_country.cities.append(city(name=city_name))

        new_country.cities.append(city(name="Bremen"))

        # But Bremen is not an English town, is it?
        result = self.ds.select(city, sql.where("name=", sql.string_literal("Bremen")))
        bremen = result.next()

        result = self.ds.select(country, sql.where("name=", sql.string_literal("Germany")))
        germany = result.next()

        # this will update the foreign key in the city table
        bremen.country_id = germany.id
        self.ds.commit(bremen, germany)

        german_cities = germany.cities.select(sql.order_by("name"))
        names = map(lambda c: c.name, list(german_cities))
        self.assertEqual(names, [u"Berlin", u"Bremen", u"Hamburg", u"München", u"Witten"])

        bremen_where = sql.where("name='Bremen'")
        self.assertEqual(len(germany.cities), 5)
        self.assertEqual(germany.cities.len(bremen_where), 1)

        bremen = germany.cities.select(bremen_where).next()
        self.assertEqual(bremen.name, u"Bremen")
コード例 #3
0
    def sql_literal(self, dbobj):
        if not self.isset(dbobj):
            msg = "This attribute has not been retrieved from the database."
            raise AttributeError(msg)
        else:
            value = getattr(dbobj, self.data_attribute_name())

            if value is None:
                return sql.NULL
            else:
                return sql.string_literal(self.datetime_as_string(value))
コード例 #4
0
ファイル: datatypes.py プロジェクト: MariusCC/rinohtype
    def sql_literal(self, dbobj):
        if not self.isset(dbobj):
            msg = "This attribute has not been retrieved from the database."
            raise AttributeError(msg)
        else:        
            value = getattr(dbobj, self.data_attribute_name())

            if value is None:
                return sql.NULL
            else:
                return sql.string_literal(self.datetime_as_string(value))
コード例 #5
0
    def sql_literal(self, dbobj):
        """
        This function takes care of converting the Python object into a
        serialized string representation.
        """
        if not self.isset(dbobj):
            msg = "This attribute has not been retrieved from the database."
            raise AttributeError(msg)
        else:
            value = getattr(dbobj, self.data_attribute_name())

            if value is None:
                return sql.NULL
            else:
                pickled = dumps(value, self.pickle_protocol)
                return sql.string_literal(pickled)
コード例 #6
0
ファイル: datatypes.py プロジェクト: MariusCC/rinohtype
    def sql_literal(self, dbobj):
        """
        This function takes care of converting the Python object into a
        serialized string representation.
        """
        if not self.isset(dbobj):
            msg = "This attribute has not been retrieved from the database."
            raise AttributeError(msg)
        else:        
            value = getattr(dbobj, self.data_attribute_name())

            if value is None:
                return sql.NULL
            else:
                pickled = dumps(value, self.pickle_protocol)
                return sql.string_literal(pickled)