| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- #  Copyright © 2023 Ingram Micro Inc. All rights reserved.
 
- import pytest
 
- from integration_tests.tests.utils import (
 
-     REPLICA_BASIC_TABLE,
 
-     count_replica_rows,
 
-     get_replica_first,
 
-     transport_delay,
 
- )
 
- from tests.dj_master.models import BasicFieldsModel
 
- @pytest.mark.django_db(transaction=True)
 
- def test_flow(replica_cursor, mocker, clean_rabbit_transport_connection):
 
-     assert count_replica_rows(replica_cursor, REPLICA_BASIC_TABLE) == 0
 
-     # Create
 
-     master_instance = BasicFieldsModel.objects.create(
 
-         int_field=1,
 
-         char_field='text',
 
-     )
 
-     assert master_instance.cqrs_revision == 0
 
-     transport_delay()
 
-     assert count_replica_rows(replica_cursor, REPLICA_BASIC_TABLE) == 1
 
-     replica_tuple = get_replica_first(
 
-         replica_cursor,
 
-         REPLICA_BASIC_TABLE,
 
-         ('int_field', 'char_field', 'cqrs_revision', 'cqrs_updated'),
 
-     )
 
-     assert (
 
-         master_instance.int_field,
 
-         master_instance.char_field,
 
-         master_instance.cqrs_revision,
 
-         master_instance.cqrs_updated,
 
-     ) == replica_tuple
 
-     # We simulate transport error
 
-     mocker.patch('dj_cqrs.controller.producer.produce')
 
-     master_instance.char_field = 'new'
 
-     master_instance.save()
 
-     mocker.stopall()
 
-     master_instance.refresh_from_db()
 
-     assert master_instance.cqrs_revision == 1
 
-     # Sync to other service
 
-     master_instance.cqrs_sync(queue='other_replica')
 
-     transport_delay()
 
-     assert count_replica_rows(replica_cursor, REPLICA_BASIC_TABLE) == 1
 
-     replica_tuple = get_replica_first(
 
-         replica_cursor,
 
-         REPLICA_BASIC_TABLE,
 
-         ('int_field', 'char_field', 'cqrs_revision', 'cqrs_updated'),
 
-     )
 
-     assert replica_tuple[0] == 1
 
-     assert replica_tuple[1] == 'text'
 
-     assert replica_tuple[2] == 0
 
-     # Sync to replica
 
-     master_instance.cqrs_sync(queue='replica')
 
-     transport_delay()
 
-     assert count_replica_rows(replica_cursor, REPLICA_BASIC_TABLE) == 1
 
-     replica_tuple = get_replica_first(
 
-         replica_cursor,
 
-         REPLICA_BASIC_TABLE,
 
-         ('int_field', 'char_field', 'cqrs_revision', 'cqrs_updated'),
 
-     )
 
-     assert replica_tuple[0] == 1
 
-     assert replica_tuple[1] == 'new'
 
-     assert replica_tuple[2] == 1
 
-     mocker.patch('dj_cqrs.controller.producer.produce')
 
-     master_instance.char_field = 'new2'
 
-     master_instance.save()
 
-     mocker.stopall()
 
-     # Sync to all
 
-     master_instance.cqrs_sync()
 
-     transport_delay()
 
-     assert count_replica_rows(replica_cursor, REPLICA_BASIC_TABLE) == 1
 
-     replica_tuple = get_replica_first(
 
-         replica_cursor,
 
-         REPLICA_BASIC_TABLE,
 
-         ('int_field', 'char_field', 'cqrs_revision', 'cqrs_updated'),
 
-     )
 
-     assert replica_tuple[0] == 1
 
-     assert replica_tuple[1] == 'new2'
 
-     assert replica_tuple[2] == 2
 
 
  |