Ejemplo n.º 1
0
    def test_example(self):
        RecordA.drop_table(fail_silently=True)
        RecordB.drop_table(fail_silently=True)
        RecordA.create_table(fail_silently=True)
        RecordB.create_table(fail_silently=True)

        f = FixedEngine([RecordA, RecordB], selector_slice=(0, 2))
        client_id = 0
        aux = []
        for r in f.load('samples/sample_utf8.txt'):
            if type(r) is RecordA:
                client_id += 1
            r.client_id = client_id
            if type(r) is RecordB:
                aux.append(r)
            r.save()

        c1 = RecordA.get(client_id=1)
        self.assertEquals(c1.typ, 1)
        self.assertEquals(c1.name, u'ariel')
        self.assertEquals(c1.age, 32)
        self.assertEquals(c1.salary, 123.45)

        self.assertEquals(RecordA.select().count(), 2)

        c2 = RecordB.select()
        self.assertEquals(c2.count(), 4)

        for y, t in zip(c2, aux):
            self.assertEquals(y.typ, t.typ)
            self.assertEquals(y.address, t.address)
            self.assertEquals(y.phone, t.phone)
Ejemplo n.º 2
0
 def test_init_with_one_record(self):
     r = FixedEngine([RecordA])
     self.assertEquals(len(r.records), 1)
     self.assertIs(r.records[0], RecordA)
     self.assertIs(r.selector('anything'), RecordA)
     obj = RecordA()
     self.assertIs(r.find_record(obj), RecordA)
Ejemplo n.º 3
0
 def test_save(self):
     f = FixedEngine([RecordA, RecordB], self.selector)
     fi = 'samples/test_sample1.txt'
     f.save(fi, self.objs)
     self.assertTrue(os.path.exists(fi))
     lines1 = open(fi, 'r').readlines()
     lines2 = open('samples/sample_utf8.txt', 'r').readlines()
     self.assertEquals(''.join(lines1), ''.join(lines2))
     os.remove(fi)
Ejemplo n.º 4
0
 def test_init_with_two_records_using_selector_string(self):
     self.assertRaises(AssertionError, FixedEngine, [RecordA, RecordB])
     r = FixedEngine([RecordA, RecordB], selector_slice=(0, 2))
     obj_a = RecordA()
     obj_b = RecordB()
     self.assertEquals(len(r.records), 2)
     self.assertIs(r.records[0], RecordA)
     self.assertIs(r.records[1], RecordB)
     self.assertIs(r.selector('01Ariel'), RecordA)
     self.assertIs(r.selector('02Ariel'), RecordB)
     self.assertIs(r.find_record(obj_a), RecordA)
     self.assertIs(r.find_record(obj_b), RecordB)
Ejemplo n.º 5
0
from pypfp.core import Field, Record
from pypfp.core import FixedEngine
from pypfp.converters import Float, Int, String


class Header(Record):
    typ = Field(Int, 2)
    name = Field(String, 10)
    age = Field(Int, 2)
    salary = Field(Float, 14, precision=4)

    class Meta:
        selector_string = u'01'


class Address(Record):
    typ = Field(Int, 2)
    address = Field(String, 10, truncate=True)
    phone = Field(String, 20)

    class Meta:
        selector_string = u'02'

# read sample file
engine = FixedEngine([Header, Address], selector_slice=(0, 2))

# print records
for r in engine.load('../samples/sample_utf8.txt'):
    print unicode(r).encode('utf-8')
Ejemplo n.º 6
0
 def test_load(self):
     f = FixedEngine([RecordA, RecordB], self.selector)
     objects = f.load('samples/sample_utf8.txt')
     self.assertEqual(len(objects), len(self.objs))
     for y, t in zip(objects, self.objs):
         self.assertEqual(y, t)