Example #1
0
 def test_return_true_if_having_same_fields(self):
     fields = ('serialNumber', 'issuerName')
     record1 = {'serialNumber': 'foo', 'issuerName': 'bar',
                'last_modified': 1234}
     record2 = {'serialNumber': 'foo', 'issuerName': 'bar',
                'last_modified': 4567}
     assert same_record(fields, record1, record2)
Example #2
0
def synchronize(fields, xml_options, kinto_options):
    print("Working on %r" % kinto_options["server"])
    print("Reading data from %r" % xml_options["filename"])
    xml = XMLRecords(fields, options=xml_options)
    kinto = KintoRecords(fields, options=kinto_options)
    to_delete = []
    to_update = []
    to_create = []

    print("Syncing to %s%s/records" % (kinto_options["server"], kinto_options["collection_name"]))

    # looking at kinto to list records
    # to delete or to update
    for record in kinto.records:
        xml_rec = xml.find(record["id"])
        if xml_rec is None:
            to_delete.append(record)
        else:
            if not same_record(fields, xml_rec, record):
                to_update.append(xml_rec)

    # new records ?
    for record in xml.records:
        kinto_rec = kinto.find(record["id"])
        if not kinto_rec:
            to_create.append(record)

    print("- %d records to create." % len(to_create))
    print("- %d records to delete." % len(to_delete))
    print("- %d records to update." % len(to_update))

    for record in to_delete:
        try:
            kinto.delete(record)
        except KintoException as e:
            raise SynchronizationError(e.response.content)

    for record in to_create + to_update:
        try:
            kinto.create(record)
        except KintoException as e:
            raise SynchronizationError(e.response.content)

    print("Done!")
Example #3
0
 def test_return_false_if_different(self):
     fields = ('serialNumber', 'issuerName')
     record1 = {'serialNumber': 'foo', 'issuerName': 'bar'}
     record2 = {'serialNumber': 'BAR', 'issuerName': 'FOO'}
     assert not same_record(fields, record1, record2)