text: #
  # MIT License
  #
  # Copyright (c) 2020 Airbyte
  #
  # Permission is hereby granted, free of charge, to any person obtaining a copy
  # of this software and associated documentation files (the "Software"), to deal
  # in the Software without restriction, including without limitation the rights
  # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  # copies of the Software, and to permit persons to whom the Software is
  # furnished to do so, subject to the following conditions:
  #
  # The above copyright notice and this permission notice shall be included in all
  # copies or substantial portions of the Software.
  #
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  # SOFTWARE.
  #
  
  
  import pytest
  from airbyte_cdk.models import Type
  from source_acceptance_test.base import BaseTest
  from source_acceptance_test.utils import ConnectorRunner, full_refresh_only_catalog, serialize
  
  
  @pytest.mark.default_timeout(20 * 60)
  class TestFullRefresh(BaseTest):
      def test_sequential_reads(self, connector_config, configured_catalog, docker_runner: ConnectorRunner, detailed_logger):
          configured_catalog = full_refresh_only_catalog(configured_catalog)
          output = docker_runner.call_read(connector_config, configured_catalog)
          records_1 = [message.record.data for message in output if message.type == Type.RECORD]
  
          output = docker_runner.call_read(connector_config, configured_catalog)
          records_2 = [message.record.data for message in output if message.type == Type.RECORD]
  
          output_diff = set(map(serialize, records_1)) - set(map(serialize, records_2))
          if output_diff:
              msg = "The two sequential reads should produce either equal set of records or one of them is a strict subset of the other"
              detailed_logger.info(msg)
              detailed_logger.log_json_list(output_diff)
              pytest.fail(msg)
  