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_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 _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)
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_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_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 build_fields(**kwargs): fields = [] for (name, value) in kwargs.items(): fields.append(Field(name, value)) return fields