Example #1
0
    def test_base_bind (self):
        s = Independent()

        self.assertEqual(os.path.dirname(s.base_location), os.getcwd())
        self.assertEqual(os.path.basename(s.base_location), '.tesqldb')

        s.bind(self.path)

        self.assertEqual(os.path.dirname(s.base_location), '/tmp')
        self.assertEqual(os.path.basename(s.base_location), 'test.tesqldb')
Example #2
0
    def test_entity_default_by_class_pk_get_location (self):
        s = Independent()
        s.bind(self.path)

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

        self.assertEqual(s.get_location(Person, pk=1),
                         os.path.join(self.path, 'Person', '1.conf'))

        self.assertFalse(os.path.isdir(os.path.join(self.path, 'Person')))
Example #3
0
    def test_entity_default_by_object_make_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')

        self.assertEqual(s.make_location(p1),
                         os.path.join(self.path, 'Person', '1.conf'))
        self.assertEqual(s.make_location(p2),
                         os.path.join(self.path, 'Person', '2.conf'))

        self.assertTrue(os.path.isdir(os.path.join(self.path, 'Person')))
Example #4
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')
Example #5
0
    def test_store_entity_with_virtual_fields_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, virtual=True)

        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')))

        self.assertEqual(open(os.path.join(self.path, 'Person', '1.conf'), 'rU').read(),
                         '\n[Person]\n\npk: 1\nfirstname: Homer\n')
        self.assertEqual(open(os.path.join(self.path, 'Person', '2.conf'), 'rU').read(),
                         '\n[Person]\n\npk: 2\nfirstname: Bart\n')
Example #6
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')
Example #7
0
    def test_list_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')))

        self.assertEqual(s.list_location(p1),
                         os.path.join(self.path, 'Person', '1.conf'))
        self.assertEqual(s.list_location(Person, 1),
                         os.path.join(self.path, 'Person', '1.conf'))
        self.assertEqual(s.list_location(p2),
                         os.path.join(self.path, 'Person', '2.conf'))
        self.assertEqual(s.list_location(Person, 2),
                         os.path.join(self.path, 'Person', '2.conf'))
        self.assertEqual(s.list_location(Person, 3), None)
        self.assertEqual(list(s.list_location(Person)),
                         [os.path.join(self.path, 'Person', '1.conf'),
                          os.path.join(self.path, 'Person', '2.conf')])