def test_fields_are_identical(self):
        job_id = uuid4()
        left_fields = [Field("name", "john doe"),
                       Field("salary", 1900.99),
                       Field("married", True),
                       Field("job_id", job_id)]

        right_fields = [Field("name", "john doe"),
                        Field("married", True),
                        Field("salary", 1900.99),
                        Field("points", 100),
                        Field("job_id", str(job_id))]

        assert Field.fields_are_identical(left_fields, right_fields)
        assert Field.fields_are_identical(right_fields, left_fields)
 def __apply_update_to_existing_document(self, update, existing_document):
     if update.timestamp > existing_document.timestamp:
         if update.is_delete:
             self._document_store.delete(update.identifier)
         else:
             # in order to avoid deadlocks and break cycles, a document is updated only if there are differences.
             if not Field.fields_are_identical(existing_document.fields, update.fields):
                 self._document_store.update(update)
    def test_fields_are_identical(self):
        job_id = uuid4()
        left_fields = [
            Field("name", "john doe"),
            Field("salary", 1900.99),
            Field("married", True),
            Field("job_id", job_id)
        ]

        right_fields = [
            Field("name", "john doe"),
            Field("married", True),
            Field("salary", 1900.99),
            Field("points", 100),
            Field("job_id", str(job_id))
        ]

        assert Field.fields_are_identical(left_fields, right_fields)
        assert Field.fields_are_identical(right_fields, left_fields)