def create_dummy_store_data(): data = {} DatabaseIDModel.objects.create() (data['group1_id'], _) = InstanceIDModel.get_or_create_current_instance() # counter is at 0 # create controllers for app/store/buffer operations data['mc'] = MorangoProfileController('facilitydata') data['sc'] = SyncClient(None, 'host') session = SyncSession.objects.create(id=uuid.uuid4().hex, profile="facilitydata", last_activity_timestamp=timezone.now()) data['sc'].current_transfer_session = TransferSession.objects.create(id=uuid.uuid4().hex, sync_session=session, push=True, last_activity_timestamp=timezone.now()) data['mc'].serialize_into_store() # counter is at 1 # create group of facilities and first serialization data['group1_c1'] = [FacilityFactory() for _ in range(5)] data['mc'].serialize_into_store() # counter is at 2 # create group of facilities and second serialization data['group1_c2'] = [FacilityFactory() for _ in range(5)] # create users and logs associated with user data['user1'] = MyUser.objects.create(username='******') data['user1_sumlogs'] = [SummaryLog.objects.create(user=data['user1']) for _ in range(5)] data['mc'].serialize_into_store() # counter is at 3 # create new instance id and group of facilities with mock.patch('platform.platform', return_value='plataforma'): (data['group2_id'], _) = InstanceIDModel.get_or_create_current_instance() # new counter is at 0 data['mc'].serialize_into_store() # new counter is at 1 data['group2_c1'] = [FacilityFactory() for _ in range(5)] # create users and logs associated with user data['user2'] = MyUser.objects.create(username='******') data['user2_sumlogs'] = [SummaryLog.objects.create(user=data['user2']) for _ in range(5)] data['user2_interlogs'] = [InteractionLog.objects.create(user=data['user2']) for _ in range(5)] data['user3'] = MyUser.objects.create(username='******') data['user3_sumlogs'] = [SummaryLog.objects.create(user=data['user3']) for _ in range(5)] data['user3_interlogs'] = [InteractionLog.objects.create(user=data['user3']) for _ in range(5)] data['mc'].serialize_into_store() # new counter is at 2 data['user4'] = MyUser.objects.create(username='******', _morango_partition='badpartition') data['mc'].serialize_into_store() # new counter is at 3 return data
def setUp(self): session = SyncSession.objects.create( id=uuid.uuid4().hex, profile="facilitydata", last_activity_timestamp=timezone.now()) transfer_session = TransferSession.objects.create( id=uuid.uuid4().hex, sync_session=session, filter='partition', push=True, last_activity_timestamp=timezone.now(), records_total=3) conn = NetworkSyncConnection() self.syncclient = SyncClient(conn, session) self.syncclient.current_transfer_session = transfer_session self.chunk_size = 3 InstanceIDModel.get_or_create_current_instance()
def setUp(self): settings.MORANGO_DESERIALIZE_AFTER_DEQUEUING = False self.data = {} DatabaseIDModel.objects.create() (self.current_id, _) = InstanceIDModel.get_or_create_current_instance() # create controllers for app/store/buffer operations self.data['mc'] = MorangoProfileController('facilitydata') self.data['sc'] = SyncClient(None, 'host') session = SyncSession.objects.create( id=uuid.uuid4().hex, profile="", last_activity_timestamp=timezone.now()) self.data[ 'sc'].current_transfer_session = TransferSession.objects.create( id=uuid.uuid4().hex, sync_session=session, push=True, last_activity_timestamp=timezone.now()) self.data.update( create_buffer_and_store_dummy_data( self.data['sc'].current_transfer_session.id))
class SyncClientTestCase(TestCase): def setUp(self): session = SyncSession.objects.create( id=uuid.uuid4().hex, profile="facilitydata", last_activity_timestamp=timezone.now()) transfer_session = TransferSession.objects.create( id=uuid.uuid4().hex, sync_session=session, filter='partition', push=True, last_activity_timestamp=timezone.now(), records_total=3) conn = NetworkSyncConnection() self.syncclient = SyncClient(conn, session) self.syncclient.current_transfer_session = transfer_session self.chunk_size = 3 InstanceIDModel.get_or_create_current_instance() def build_buffer_items(self, transfer_session, **kwargs): data = { "profile": kwargs.get("profile", 'facilitydata'), "serialized": kwargs.get("serialized", '{"test": 99}'), "deleted": kwargs.get("deleted", False), "last_saved_instance": kwargs.get("last_saved_instance", uuid.uuid4().hex), "last_saved_counter": kwargs.get("last_saved_counter", 179), "partition": kwargs.get("partition", 'partition'), "source_id": kwargs.get("source_id", uuid.uuid4().hex), "model_name": kwargs.get("model_name", "contentsummarylog"), "conflicting_serialized_data": kwargs.get("conflicting_serialized_data", ""), "model_uuid": kwargs.get("model_uuid", None), "transfer_session": transfer_session, } for i in range(self.chunk_size): data['source_id'] = uuid.uuid4().hex data["model_uuid"] = SummaryLog.compute_namespaced_id( data["partition"], data["source_id"], data["model_name"]) Buffer.objects.create(**data) buffered_items = Buffer.objects.filter( transfer_session=self.syncclient.current_transfer_session) serialized_records = BufferSerializer(buffered_items, many=True) return json.dumps(serialized_records.data) @mock_patch_decorator def test_push_records(self): self.build_buffer_items(self.syncclient.current_transfer_session) self.assertEqual( self.syncclient.current_transfer_session.records_transferred, 0) self.syncclient._push_records(chunk_size=self.chunk_size) self.assertEqual( self.syncclient.current_transfer_session.records_transferred, self.chunk_size) @mock_patch_decorator def test_pull_records(self): resp = self.build_buffer_items( self.syncclient.current_transfer_session) NetworkSyncConnection._request.return_value.json.return_value = json.loads( resp) Buffer.objects.filter(transfer_session=self.syncclient. current_transfer_session).delete() self.assertEqual( Buffer.objects.filter(transfer_session=self.syncclient. current_transfer_session).count(), 0) self.assertEqual( self.syncclient.current_transfer_session.records_transferred, 0) self.syncclient._pull_records(chunk_size=self.chunk_size) self.assertEqual( Buffer.objects.filter(transfer_session=self.syncclient. current_transfer_session).count(), self.chunk_size) self.assertEqual( self.syncclient.current_transfer_session.records_transferred, self.chunk_size) @mock_patch_decorator def test_create_transfer_session_push(self): self.syncclient.current_transfer_session.active = False self.syncclient.current_transfer_session.save() self.assertEqual( TransferSession.objects.filter(active=True).count(), 0) self.syncclient._create_transfer_session(True, 'filter') self.assertEqual( TransferSession.objects.filter(active=True).count(), 1) @mock_patch_decorator def test_close_transfer_session_push(self): self.assertEqual( TransferSession.objects.filter(active=True).count(), 1) self.syncclient._close_transfer_session() self.assertEqual( TransferSession.objects.filter(active=True).count(), 0) @mock_patch_decorator def test_close_sync_session(self): self.assertEqual(SyncSession.objects.filter(active=True).count(), 1) self.syncclient._close_transfer_session() self.syncclient.close_sync_session() self.assertEqual(SyncSession.objects.filter(active=True).count(), 0)