def setUpTestPackage(): """ see https://nose.readthedocs.io/en/latest/writing_tests.html#test-packages this is called from __init__.py """ cursor = connection.cursor() sql = """ INSERT INTO public.oauth2_provider_application( id,client_id, redirect_uris, client_type, authorization_grant_type, client_secret, name, user_id, skip_authorization, created, updated) VALUES ( 44,'{oauth_client_id}', 'http://localhost:8000/test', 'public', 'client-credentials', '{oauth_client_secret}', 'TEST APP', {user_id}, false, '1-1-2000', '1-1-2000'); """ sql = sql.format(user_id=1, oauth_client_id=OAUTH_CLIENT_ID, oauth_client_secret=OAUTH_CLIENT_SECRET) cursor.execute(sql) prepare_terms_index(create=True) prepare_concepts_index(create=True) prepare_search_index(create=True) prepare_resource_relations_index(create=True)
def forwards_func(apps, schema_editor): se = SearchEngineFactory().create() prefix = settings.ELASTICSEARCH_PREFIX if (se.es.indices.exists(index="%s_resource_relations" % prefix)): index_settings = prepare_resource_relations_index(create=False) se.create_index(index='resource_relations_temp', body=index_settings) doc = { "source": { "index": "%s_resource_relations" % prefix, "type": "all" }, "dest": { "index": "%s_resource_relations_temp" % prefix, "type": "_doc" } } se.es.reindex(body=doc, refresh=True, wait_for_completion=True) se.delete_index(index='resource_relations') prepare_resource_relations_index(create=True) doc = { "source": { "index": "%s_resource_relations_temp" % prefix, "type": "_doc" }, "dest": { "index": "%s_resource_relations" % prefix, "type": "_doc" } } se.es.reindex(body=doc, refresh=True, wait_for_completion=True)
def setup_db(self, package_name): """ Drops and re-installs the database found at "arches_<package_name>" WARNING: This will destroy data """ db_settings = settings.DATABASES['default'] truncate_path = os.path.join(settings.ROOT_DIR, 'db', 'install', 'truncate_db.sql') db_settings['truncate_path'] = truncate_path truncate_db.create_sqlfile(db_settings, truncate_path) os.system('psql -h %(HOST)s -p %(PORT)s -U %(USER)s -d postgres -f "%(truncate_path)s"' % db_settings) self.delete_indexes() prepare_term_index(create=True) prepare_resource_relations_index(create=True) management.call_command('migrate') self.import_graphs(os.path.join(settings.ROOT_DIR, 'db', 'system_settings', 'Arches_System_Settings_Model.json'), overwrite_graphs=True) self.import_business_data(os.path.join(settings.ROOT_DIR, 'db', 'system_settings', 'Arches_System_Settings.json'), overwrite=True) local_settings_available = os.path.isfile(os.path.join(settings.SYSTEM_SETTINGS_LOCAL_PATH)) if local_settings_available == True: self.import_business_data(settings.SYSTEM_SETTINGS_LOCAL_PATH, overwrite=True)
def setup_indexes(self): prepare_terms_index(create=True) prepare_concepts_index(create=True) prepare_resource_relations_index(create=True) prepare_search_index(create=True) # add custom indexes for index in settings.ELASTICSEARCH_CUSTOM_INDEXES: self.register_index(index['name'])
def setUpClass(cls): test_pkg_path = os.path.join(test_settings.TEST_ROOT, "fixtures", "testing_prj", "testing_prj", "pkg") management.call_command("packages", operation="load_package", source=test_pkg_path, yes=True) delete_resource_relations_index() prepare_resource_relations_index(create=True)
def setup_indexes(self, name=None): if name is None: prepare_terms_index(create=True) prepare_concepts_index(create=True) prepare_resource_relations_index(create=True) prepare_search_index(create=True) # add custom indexes for index in settings.ELASTICSEARCH_CUSTOM_INDEXES: self.register_index(index["name"]) else: self.register_index(name)
def forwards_func(apps, schema_editor): if settings.SEARCH_BACKEND != 'tests.base_test.TestSearchEngine': se = SearchEngineFactory().create() se_old = SearchEngineFactory().create( hosts=[settings.ELASTICSEARCH_TEMP_HTTP_ENDPOINT]) prefix = settings.ELASTICSEARCH_PREFIX if (se.es.indices.exists(index="%s_terms" % prefix) is False and se_old.es.indices.exists(index="%s_strings" % prefix) is True): prepare_terms_index(create=True) doc = { "source": { "remote": { "host": settings.ELASTICSEARCH_TEMP_HTTP_ENDPOINT }, "index": "%s_strings" % prefix, "type": "term" }, "dest": { "index": "%s_terms" % prefix, "type": "_doc" } } se.es.reindex(body=doc) if (se.es.indices.exists(index="%s_concepts" % prefix) is False and se_old.es.indices.exists(index="%s_strings" % prefix) is True): prepare_concepts_index(create=True) doc = { "source": { "remote": { "host": settings.ELASTICSEARCH_TEMP_HTTP_ENDPOINT }, "index": "%s_strings" % prefix, "type": "concept" }, "dest": { "index": "%s_concepts" % prefix, "type": "_doc" } } se.es.reindex(body=doc) if (se.es.indices.exists(index="%s_resources" % prefix) is False and se_old.es.indices.exists(index="%s_resource" % prefix) is True): prepare_search_index(create=True) doc = { "source": { "remote": { "host": settings.ELASTICSEARCH_TEMP_HTTP_ENDPOINT }, "index": "%s_resource" % prefix }, "dest": { "index": "%s_resources" % prefix, "type": "_doc" } } se.es.reindex(body=doc) if (se.es.indices.exists(index="%s_resource_relations" % prefix) is False and se_old.es.indices.exists( index="%s_resource_relations" % prefix) is True): prepare_resource_relations_index(create=True) doc = { "source": { "remote": { "host": settings.ELASTICSEARCH_TEMP_HTTP_ENDPOINT }, "index": "%s_resource_relations" % prefix }, "dest": { "index": "%s_resource_relations" % prefix, "type": "_doc" } } se.es.reindex(body=doc)
def setup_indexes(self): prepare_terms_index(create=True) prepare_concepts_index(create=True) prepare_resource_relations_index(create=True) prepare_search_index(create=True)
def setUpClass(cls): delete_terms_index() delete_concepts_index() delete_search_index() prepare_terms_index(create=True) prepare_concepts_index(create=True) prepare_search_index(create=True) prepare_resource_relations_index(create=True) cls.client = Client() cls.client.login(username='******', password='******') models.ResourceInstance.objects.all().delete() with open( os.path.join( 'tests/fixtures/resource_graphs/Resource Test Model.json'), 'rU') as f: archesfile = JSONDeserializer().deserialize(f) resource_graph_importer(archesfile['graph']) cls.search_model_graphid = 'e503a445-fa5f-11e6-afa8-14109fd34195' cls.search_model_cultural_period_nodeid = '7a182580-fa60-11e6-96d1-14109fd34195' cls.search_model_creation_date_nodeid = '1c1d05f5-fa60-11e6-887f-14109fd34195' cls.search_model_destruction_date_nodeid = 'e771b8a1-65fe-11e7-9163-14109fd34195' cls.search_model_name_nodeid = '2fe14de3-fa61-11e6-897b-14109fd34195' cls.search_model_sensitive_info_nodeid = '57446fae-65ff-11e7-b63a-14109fd34195' cls.search_model_geom_nodeid = '3ebc6785-fa61-11e6-8c85-14109fd34195' cls.user = User.objects.create_user('test', '*****@*****.**', 'test') cls.user.save() cls.user.groups.add(Group.objects.get(name='Guest')) nodegroup = models.NodeGroup.objects.get( pk=cls.search_model_destruction_date_nodeid) assign_perm('no_access_to_nodegroup', cls.user, nodegroup) # Add a concept that defines a min and max date concept = { "id": "00000000-0000-0000-0000-000000000001", "legacyoid": "ARCHES", "nodetype": "ConceptScheme", "values": [], "subconcepts": [{ "values": [{ "value": "Mock concept", "language": "en-US", "category": "label", "type": "prefLabel", "id": "", "conceptid": "" }, { "value": "1950", "language": "en-US", "category": "note", "type": "min_year", "id": "", "conceptid": "" }, { "value": "1980", "language": "en-US", "category": "note", "type": "max_year", "id": "", "conceptid": "" }], "relationshiptype": "hasTopConcept", "nodetype": "Concept", "id": "", "legacyoid": "", "subconcepts": [], "parentconcepts": [], "relatedconcepts": [] }] } post_data = JSONSerializer().serialize(concept) content_type = 'application/x-www-form-urlencoded' response = cls.client.post( reverse( 'concept', kwargs={'conceptid': '00000000-0000-0000-0000-000000000001'}), post_data, content_type) response_json = json.loads(response.content) valueid = response_json['subconcepts'][0]['values'][0]['id'] cls.conceptid = response_json['subconcepts'][0]['id'] # Add resource with Name, Cultural Period, Creation Date and Geometry cls.test_resource = Resource(graph_id=cls.search_model_graphid) # Add Name tile = Tile(data={cls.search_model_name_nodeid: 'Test Name 1'}, nodegroup_id=cls.search_model_name_nodeid) cls.test_resource.tiles.append(tile) # Add Cultural Period tile = Tile(data={cls.search_model_cultural_period_nodeid: [valueid]}, nodegroup_id=cls.search_model_cultural_period_nodeid) cls.test_resource.tiles.append(tile) # Add Creation Date tile = Tile(data={cls.search_model_creation_date_nodeid: '1941-01-01'}, nodegroup_id=cls.search_model_creation_date_nodeid) cls.test_resource.tiles.append(tile) # Add Gometry cls.geom = { "type": "FeatureCollection", "features": [{ "geometry": { "type": "Point", "coordinates": [0, 0] }, "type": "Feature", "properties": {} }] } tile = Tile(data={cls.search_model_geom_nodeid: cls.geom}, nodegroup_id=cls.search_model_geom_nodeid) cls.test_resource.tiles.append(tile) cls.test_resource.save() # add delay to allow for indexes to be updated time.sleep(1)
def setup_indexes(self): prepare_term_index(create=True) prepare_resource_relations_index(create=True)
def setup_indexes(self): prepare_term_index(create=True) prepare_resource_relations_index(create=True) for graphid in models.GraphModel.objects.filter(isresource=True).values_list('graphid', flat=True): prepare_search_index(str(graphid), create=True)
def setup_indexes(self, package_name): prepare_term_index(create=True) prepare_resource_relations_index(create=True)