def test_remove_errata_id_one_ok(self): # Preparations: Create patched connector # (Patched to avoid that message be sent, and to retrieve the created message) testconnector = TESTHELPERS.get_connector() TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: Add errata testconnector.remove_errata_ids(drs_id=DRS_ID, version_number=DS_VERSION, errata_ids=ERRATA) # Check result: Was correct errata message created? expected_rabbit_task = { "handle": DATASETHANDLE_HDL, "operation": "remove_errata_ids", "message_timestamp": "anydate", "errata_ids": [ERRATA], "ROUTING_KEY": PREFIX_FOR_ROUTINGKEY + '.HASH.fresh.errata-rem', "drs_id": DRS_ID, "version_number": DS_VERSION } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock( testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue( is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))
def test_unpublish_all_versions_solr_off(self): # Preparations: Create patched connector testconnector = TESTHELPERS.get_connector(data_node=DATA_NODE, solr_switched_off=True) TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: testconnector.unpublish_all_versions(drs_id=DRS_ID) # Check result: expected_rabbit_task = { "operation": "unpublish_all_versions", "message_timestamp": "anydate", "data_node": DATA_NODE, "aggregation_level": "dataset", "drs_id": DRS_ID, "ROUTING_KEY": PREFIX_FOR_ROUTINGKEY + '.HASH.fresh.unpubli-allvers', } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock( testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue( is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))
def test_unpublish_all_versions_nosolr_ok(self, solr_asker_patch): # Patch: Make the coupler return None when we ask it # to find dataset versions... mydict = dict(dataset_handles=None, version_numbers=None) solr_asker_patch.return_value = mydict # Preparations: Create patched connector testconnector = TESTHELPERS.get_connector(data_node=DATA_NODE) TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: testconnector.unpublish_all_versions(drs_id=DRS_ID) # Check result: expected_rabbit_task = { "operation": "unpublish_all_versions", "message_timestamp": "anydate", "data_node": DATA_NODE, "aggregation_level": "dataset", "drs_id": DRS_ID, "ROUTING_KEY": PREFIX_FOR_ROUTINGKEY + '.HASH.fresh.unpubli-allvers', } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock( testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue( is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))
def test_unpublish_one_version_with_consumer_url_ok(self): # Preparations: Make connector, but without # solr mock. This is to see that with consumer_solr_url, # the library does not try to access solr. testconnector = TESTHELPERS.get_connector( consumer_solr_url=SOLR_URL_CONSUMER, data_node=DATA_NODE) TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: Unpublish one version testconnector.unpublish_one_version(drs_id=DRS_ID, version_number=DS_VERSION) # Check result: # We don't get the consumer_solr_url, because it is only # needed for unpublishing all versions. expected_rabbit_task = { "handle": DATASETHANDLE_HDL, "operation": "unpublish_one_version", "message_timestamp": "anydate", "aggregation_level": "dataset", "data_node": DATA_NODE, "ROUTING_KEY": PREFIX_FOR_ROUTINGKEY + '.HASH.fresh.unpubli-onevers', "drs_id": DRS_ID, "version_number": int(DS_VERSION) } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock( testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue( is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))
def test_unpublish_one_version_ok(self): # Preparations: Make patched connector with data node (needed for unpublish) testconnector = TESTHELPERS.get_connector(data_node=DATA_NODE) TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: Unpublish testconnector.unpublish_one_version(drs_id=DRS_ID, version_number=DS_VERSION) # Check result: expected_rabbit_task = { "handle": DATASETHANDLE_HDL, "operation": "unpublish_one_version", "message_timestamp": "anydate", "aggregation_level": "dataset", "data_node": DATA_NODE, "ROUTING_KEY": PREFIX_FOR_ROUTINGKEY + '.HASH.fresh.unpubli-onevers', "drs_id": DRS_ID, "version_number": int(DS_VERSION) } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock( testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue( is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))
def test_unpublish_all_versions_nosolr__butconsumersolr_ok(self, solr_asker_patch): # Patch coupler mydict = dict(dataset_handles=None, version_numbers=None) solr_asker_patch.return_value = mydict # Preparations: Create patched connector testconnector = TESTHELPERS.get_connector( data_node = DATA_NODE, solr_url = SOLR_URL_LIBRARY, consumer_solr_url=SOLR_URL_CONSUMER ) TESTHELPERS.patch_with_rabbit_mock(testconnector) # Run code to be tested: testconnector.unpublish_all_versions( drs_id=DRS_ID, data_node=DATA_NODE) # Check result: expected_rabbit_task = { "operation": "unpublish_all_versions", "message_timestamp": "anydate", "data_node": DATA_NODE, "aggregation_level":"dataset", "drs_id":DRS_ID, "ROUTING_KEY": ROUTING_KEY_BASIS+'unpublication.all', "consumer_solr_url":SOLR_URL_CONSUMER } received_rabbit_msg = TESTHELPERS.get_received_message_from_rabbitmock(testconnector) is_same = utils.is_json_same(expected_rabbit_task, received_rabbit_msg) self.assertTrue(is_same, utils.compare_json_return_errormessage(expected_rabbit_task, received_rabbit_msg))