Skip to content

Commit

Permalink
feat: add 'update_transforms' to '_helpers.pbs_for_set_no_merge'
Browse files Browse the repository at this point in the history
Toward #217.
  • Loading branch information
tseaver committed Oct 7, 2020
1 parent 51295fd commit c2622ae
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 23 deletions.
10 changes: 4 additions & 6 deletions google/cloud/firestore_v1/_helpers.py
Expand Up @@ -624,15 +624,13 @@ def pbs_for_set_no_merge(document_path, document_data) -> List[types.write.Write
"specifying 'merge=True' or 'merge=[field_paths]'."
)

# Conformance tests require send the 'update_pb' even if the document
# contains only transforms.
write_pbs = [extractor.get_update_pb(document_path)]
set_pb = extractor.get_update_pb(document_path)

if extractor.has_transforms:
transform_pb = extractor.get_transform_pb(document_path)
write_pbs.append(transform_pb)
field_transform_pbs = extractor.get_field_transform_pbs(document_path)
set_pb.update_transforms.extend(field_transform_pbs)

return write_pbs
return [set_pb]


class DocumentExtractorForMerge(DocumentExtractor):
Expand Down
26 changes: 9 additions & 17 deletions tests/unit/v1/test__helpers.py
Expand Up @@ -1631,23 +1631,17 @@ def _make_write_w_document(document_path, **data):
)

@staticmethod
def _make_write_w_transform(document_path, fields):
def _add_field_transforms(update_pb, fields):
from google.cloud.firestore_v1.types import write
from google.cloud.firestore_v1 import DocumentTransform

server_val = DocumentTransform.FieldTransform.ServerValue
transforms = [
write.DocumentTransform.FieldTransform(
field_path=field, set_to_server_value=server_val.REQUEST_TIME
)
for field in fields
]

return write.Write(
transform=write.DocumentTransform(
document=document_path, field_transforms=transforms
for field in fields:
update_pb.update_transforms.append(
DocumentTransform.FieldTransform(
field_path=field, set_to_server_value=server_val.REQUEST_TIME
)
)
)

def test_w_empty_document(self):
document_path = _make_ref_string(u"little", u"town", u"of", u"ham")
Expand All @@ -1668,8 +1662,8 @@ def test_w_only_server_timestamp(self):
write_pbs = self._call_fut(document_path, document_data)

update_pb = self._make_write_w_document(document_path)
transform_pb = self._make_write_w_transform(document_path, ["butter"])
expected_pbs = [update_pb, transform_pb]
self._add_field_transforms(update_pb, fields=["butter"])
expected_pbs = [update_pb]
self.assertEqual(write_pbs, expected_pbs)

def _helper(self, do_transform=False, empty_val=False):
Expand Down Expand Up @@ -1697,9 +1691,7 @@ def _helper(self, do_transform=False, empty_val=False):
expected_pbs = [update_pb]

if do_transform:
expected_pbs.append(
self._make_write_w_transform(document_path, fields=["butter"])
)
self._add_field_transforms(update_pb, fields=["butter"])

self.assertEqual(write_pbs, expected_pbs)

Expand Down

0 comments on commit c2622ae

Please sign in to comment.