Exemplo n.º 1
0
    def test_load_entity_default_store_location (self):
        s = Independent()
        s.bind(self.path)

        class Person (Entity):
            pk = Field(Integer, primary_key=True)
            firstname = Field(String)
            surname = Field(String)

        p1 = Person(pk=1, firstname='Homer', surname='Simpson')
        p2 = Person(pk=2, firstname='Bart', surname='Simpson')

        s.store_location(p1)
        s.store_location(p2)

        self.assertTrue(os.path.isfile(os.path.join(self.path, 'Person', '1.conf')))
        self.assertTrue(os.path.isfile(os.path.join(self.path, 'Person', '2.conf')))

        np1 = s.load_location(Person, 1)
        np2 = s.load_location(Person, 2)

        self.assertTrue(isinstance(np1, Person))
        self.assertEqual(np1.meta.name, 'Person')
        self.assertEqual(np1.pk, 1)
        self.assertEqual(np1.firstname, 'Homer')
        self.assertEqual(np1.surname, 'Simpson')

        self.assertTrue(isinstance(np2, Person))
        self.assertEqual(np2.meta.name, 'Person')
        self.assertEqual(np2.pk, 2)
        self.assertEqual(np2.firstname, 'Bart')
        self.assertEqual(np2.surname, 'Simpson')
Exemplo n.º 2
0
    def test_store_load_entity_with_virtual_pk_default_store_location (self):
        s = Independent()
        s.bind(self.path)

        class Person (Entity):
            pk = Field(Indexer, primary_key=True, autoincrement=True, virtual=True)
            firstname = Field(String)
            surname = Field(String)

        p1 = Person(firstname='Homer', surname='Simpson')
        p2 = Person(firstname='Bart', surname='Simpson')

        s.store_location(p1)
        s.store_location(p2)

        self.assertTrue(os.path.isfile(os.path.join(self.path, 'Person', '0.conf')))
        self.assertTrue(os.path.isfile(os.path.join(self.path, 'Person', '1.conf')))

        self.assertEqual(open(os.path.join(self.path, 'Person', '0.conf'), 'rU').read(),
                         '\n[Person]\n\nfirstname: Homer\nsurname: Simpson\n')
        self.assertEqual(open(os.path.join(self.path, 'Person', '1.conf'), 'rU').read(),
                         '\n[Person]\n\nfirstname: Bart\nsurname: Simpson\n')

        np1 = s.load_location(Person, 0)
        np2 = s.load_location(Person, 1)

        self.assertTrue(isinstance(np1, Person))
        self.assertEqual(np1.meta.name, 'Person')
        self.assertEqual(np1.pk, 0)
        self.assertEqual(np1.firstname, 'Homer')
        self.assertEqual(np1.surname, 'Simpson')

        self.assertTrue(isinstance(np2, Person))
        self.assertEqual(np2.meta.name, 'Person')
        self.assertEqual(np2.pk, 1)
        self.assertEqual(np2.firstname, 'Bart')
        self.assertEqual(np2.surname, 'Simpson')