Exemplo n.º 1
0
def test_write_overwrite(config: Mapping,
                         configured_catalog: ConfiguredAirbyteCatalog,
                         writer: FirestoreWriter):
    """
    This test verifies that writing a stream in "overwrite" overwrite all exiting ones
    """
    stream = configured_catalog.streams[1].stream.name
    destination = DestinationFirestore()

    state_message = _state({"state": "3"})

    list(
        destination.write(config, configured_catalog, [
            *[_record(stream, str(i), i) for i in range(1, 3)], state_message
        ]))

    record_chunk = [_record(stream, str(i), i) for i in range(5, 10)]
    list(
        destination.write(config, configured_catalog,
                          [*record_chunk, state_message]))

    records_in_destination = retrieve_all_records(writer.client)

    expected_records = [_record(stream, str(i), i) for i in range(5, 10)]
    assert expected_records == records_in_destination
Exemplo n.º 2
0
def test_write_append(config: Mapping,
                      configured_catalog: ConfiguredAirbyteCatalog,
                      writer: FirestoreWriter):
    """
    This test verifies that writing a stream in "append" mode appends new records without deleting the old ones

    It checks also if the correct state message is output by the connector at the end of the sync
    """
    stream = configured_catalog.streams[0].stream.name
    destination = DestinationFirestore()

    state_message = _state({"state": "3"})
    record_chunk = [_record(stream, str(i), i) for i in range(1, 3)]

    output_states = list(
        destination.write(config, configured_catalog,
                          [*record_chunk, state_message]))
    assert [state_message] == output_states

    records_in_destination = retrieve_all_records(writer.client)

    expected_records = [_record(stream, str(i), i) for i in range(1, 3)]
    assert expected_records == records_in_destination
Exemplo n.º 3
0
#
# Copyright (c) 2021 Airbyte, Inc., all rights reserved.
#


import sys

from destination_firestore import DestinationFirestore

if __name__ == "__main__":
    DestinationFirestore().run(sys.argv[1:])
Exemplo n.º 4
0
def test_check_invalid_config():
    outcome = DestinationFirestore().check(AirbyteLogger(),
                                           {"project_id": "not_a_real_id"})
    assert outcome.status == Status.FAILED
Exemplo n.º 5
0
def test_check_valid_config(config: Mapping):
    outcome = DestinationFirestore().check(AirbyteLogger(), config)
    assert outcome.status == Status.SUCCEEDED