def test_datetime_fields_are_not_identical(self):
        time1 = datetime.now()
        sleep(0.001)
        time2 = datetime.now()

        assert not Field.field_values_are_identical(time1, time2)
        assert not Field.field_values_are_identical(time1, str(time2))
    def test_datetime_fields_are_not_identical(self):
        time1 = datetime.now()
        sleep(0.001)
        time2 = datetime.now()

        assert not Field.field_values_are_identical(time1, time2)
        assert not Field.field_values_are_identical(time1, str(time2))
Esempio n. 3
0
 def test_set_field_value(self):
     identifier = Identifier(namespace="test", table="test", key=uuid4())
     document = Document(identifier, timestamp=time(), fields=None)
     document.fields = [Field("one", 1), Field("two", 3)]
     document.set_field_value("one", 3)
     document.set_field_value("two", 5)
     assert_that(document.fields,
                 contains_inanyorder(Field("one", 3), Field("two", 5)))
    def test_datetime_fields_are_identical(self):
        now = datetime.now()
        assert Field.field_values_are_identical(now, now)
        assert Field.field_values_are_identical(now, str(now))

        utc_now = datetime.utcnow()
        assert Field.field_values_are_identical(utc_now, utc_now)
        assert Field.field_values_are_identical(utc_now, str(utc_now))
    def test_datetime_fields_are_identical(self):
        now = datetime.now()
        assert Field.field_values_are_identical(now, now)
        assert Field.field_values_are_identical(now, str(now))

        utc_now = datetime.utcnow()
        assert Field.field_values_are_identical(utc_now, utc_now)
        assert Field.field_values_are_identical(utc_now, str(utc_now))
Esempio n. 6
0
 def test_add_field(self):
     identifier = Identifier(namespace="test", table="test", key=uuid4())
     document = Document(identifier, timestamp=time(), fields=None)
     document.fields = [Field("one", 1)]
     document.add_field("two", 2)
     document.add_field("three", 3)
     assert_that(
         document.fields,
         contains_inanyorder(Field("one", 1), Field("two", 2),
                             Field("three", 3)))
    def test_fields_are_not_identical(self):

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

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

        assert not Field.field_values_are_identical(left_fields, right_fields)
        assert not Field.field_values_are_identical(right_fields, left_fields)
    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_not_identical(self):

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

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

        assert not Field.field_values_are_identical(left_fields, right_fields)
        assert not Field.field_values_are_identical(right_fields, left_fields)
Esempio n. 11
0
def _build_document(identifier, timestamp, source):
    if not timestamp:
        raise InvalidSchemaException(
            identifier=identifier,
            message=
            "Could not retrieve '_timestamp' for Elasticsearch document. Please check your mappings."
        )

    fields = []
    for (field_name, field_value) in source.items():
        fields.append(Field(field_name, field_value))

    return Document(identifier, timestamp, fields)
Esempio n. 12
0
 def test_set_fields(self):
     identifier = Identifier(namespace="test", table="test", key=uuid4())
     document = Document(identifier,
                         timestamp=time(),
                         fields=[Field("foo", "bar")])
     assert document.fields == [Field("foo", "bar")]
     document.fields = [Field("one", 1), Field("two", 2)]
     assert_that(document.fields,
                 contains_inanyorder(Field("one", 1), Field("two", 2)))
 def test_uuid_field_values_are_not_identical(self):
     uuid1 = uuid4()
     uuid2 = uuid4()
     assert not Field.field_values_are_identical(uuid1, uuid2)
 def test_boolean_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical(True, False)
 def test_uuid_field_values_are_identical(self):
     uuid = uuid4()
     assert Field.field_values_are_identical(uuid, uuid)
     assert Field.field_values_are_identical(uuid, str(uuid))
     assert Field.field_values_are_identical(uuid, unicode(uuid))
 def test_string_field_values_are_identical(self):
     assert Field.field_values_are_identical("test 666", "test 666")
     assert Field.field_values_are_identical(unicode("test 666"), "test 666")
     assert Field.field_values_are_identical(unicode("test 666"), str("test 666"))
def build_fields(**kwargs):
    fields = []
    for (name, value) in kwargs.items():
        fields.append(Field(name, value))
    return fields
 def test_boolean_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical(True, False)
 def test_decimal_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical("15.350", Decimal("15.35"))
     assert not Field.field_values_are_identical(Decimal("15.350"),
                                                 Decimal("15.35"))
 def test_string_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical("test 666", "test 777")
 def test_numeric_field_values_are_identical(self):
     assert Field.field_values_are_identical(15.35, 15.35)
     assert Field.field_values_are_identical(10, 10)
     assert Field.field_values_are_identical(10, 10.0)
 def test_string_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical("test 666", "test 777")
 def test_string_field_values_are_identical(self):
     assert Field.field_values_are_identical("test 666", "test 666")
     assert Field.field_values_are_identical(unicode("test 666"),
                                             "test 666")
     assert Field.field_values_are_identical(unicode("test 666"),
                                             str("test 666"))
 def test_numeric_field_values_are_identical(self):
     assert Field.field_values_are_identical(15.35, 15.35)
     assert Field.field_values_are_identical(10, 10)
     assert Field.field_values_are_identical(10, 10.0)
 def test_numeric_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical(15.35, 15.36)
     assert not Field.field_values_are_identical(10, 11)
     assert not Field.field_values_are_identical(10, 10.0001)
 def test_uuid_field_values_are_identical(self):
     uuid = uuid4()
     assert Field.field_values_are_identical(uuid, uuid)
     assert Field.field_values_are_identical(uuid, str(uuid))
     assert Field.field_values_are_identical(uuid, unicode(uuid))
    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 test_numeric_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical(15.35, 15.36)
     assert not Field.field_values_are_identical(10, 11)
     assert not Field.field_values_are_identical(10, 10.0001)
 def test_uuid_field_values_are_not_identical(self):
     uuid1 = uuid4()
     uuid2 = uuid4()
     assert not Field.field_values_are_identical(uuid1, uuid2)
 def test_decimal_field_values_are_not_identical(self):
     assert not Field.field_values_are_identical("15.350", Decimal("15.35"))
     assert not Field.field_values_are_identical(Decimal("15.350"), Decimal("15.35"))