Improved es test, introduced setup and teardown.

This commit is contained in:
Martin Edenhofer 2016-01-26 16:36:40 +01:00
parent a52b2472a8
commit 68f32ab223
2 changed files with 98 additions and 87 deletions

View file

@ -138,7 +138,7 @@ job_integration_es_mysql:
- mysql
script:
- export RAILS_ENV=test
- export ES_INDEX="estest.local_zammad_"$RNAME
- export ES_INDEX_RAND=true
- export ES_URL="http://localhost:9200"
- rake db:drop;
- rake db:create
@ -154,7 +154,7 @@ job_integration_es_postgresql:
- postgresql
script:
- export RAILS_ENV=test
- export ES_INDEX="estest.local_zammad_"$RNAME
- export ES_INDEX_RAND=true
- export ES_URL="http://localhost:9200"
- rake db:drop;
- rake db:create

View file

@ -3,92 +3,98 @@ require 'integration_test_helper'
class ElasticsearchTest < ActiveSupport::TestCase
# set config
if !ENV['ES_URL']
fail "ERROR: Need ES_URL - hint ES_URL='http://172.0.0.1:9200'"
setup do
# set config
if !ENV['ES_URL']
fail "ERROR: Need ES_URL - hint ES_URL='http://172.0.0.1:9200'"
end
Setting.set('es_url', ENV['ES_URL'])
if !ENV['ES_INDEX'] && !ENV['ES_INDEX_RAND']
fail "ERROR: Need ES_INDEX - hint ES_INDEX='estest.local_zammad'"
end
if ENV['ES_INDEX_RAND']
ENV['ES_INDEX'] = "es_index_#{rand(999_999_999)}"
end
Setting.set('es_index', ENV['ES_INDEX'])
# Setting.set('es_url', 'http://172.0.0.1:9200')
# Setting.set('es_index', 'estest.local_zammad')
# Setting.set('es_user', 'elasticsearch')
# Setting.set('es_password', 'zammad')
# set max attachment size in mb
Setting.set('es_attachment_max_size_in_mb', 1 )
# drop/create indexes
#Rake::Task["searchindex:drop"].execute
#Rake::Task["searchindex:create"].execute
system('rake searchindex:rebuild')
groups = Group.where( name: 'Users' )
roles = Role.where( name: 'Agent' )
agent = User.create_or_update(
login: 'es-agent@example.com',
firstname: 'E',
lastname: 'S',
email: 'es-agent@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
updated_by_id: 1,
created_by_id: 1,
)
group_without_access = Group.create_if_not_exists(
name: 'WithoutAccess',
note: 'Test for not access check.',
updated_by_id: 1,
created_by_id: 1
)
roles = Role.where( name: 'Customer' )
organization1 = Organization.create_if_not_exists(
name: 'Customer Organization Update',
updated_by_id: 1,
created_by_id: 1,
)
customer1 = User.create_or_update(
login: 'es-customer1@example.com',
firstname: 'ES',
lastname: 'Customer1',
email: 'es-customer1@example.com',
password: 'customerpw',
active: true,
organization_id: organization1.id,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
sleep 1
customer2 = User.create_or_update(
login: 'es-customer2@example.com',
firstname: 'ES',
lastname: 'Customer2',
email: 'es-customer2@example.com',
password: 'customerpw',
active: true,
organization_id: organization1.id,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
sleep 1
customer3 = User.create_or_update(
login: 'es-customer3@example.com',
firstname: 'ES',
lastname: 'Customer3',
email: 'es-customer3@example.com',
password: 'customerpw',
active: true,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
end
Setting.set('es_url', ENV['ES_URL'])
if !ENV['ES_INDEX']
fail "ERROR: Need ES_INDEX - hint ES_INDEX='estest.local_zammad'"
end
Setting.set('es_index', ENV['ES_INDEX'])
# Setting.set('es_url', 'http://172.0.0.1:9200')
# Setting.set('es_index', 'estest.local_zammad')
# Setting.set('es_user', 'elasticsearch')
# Setting.set('es_password', 'zammad')
# set max attachment size in mb
Setting.set('es_attachment_max_size_in_mb', 1 )
# drop/create indexes
#Rake::Task["searchindex:drop"].execute
#Rake::Task["searchindex:create"].execute
system('rake searchindex:rebuild')
groups = Group.where( name: 'Users' )
roles = Role.where( name: 'Agent' )
agent = User.create_or_update(
login: 'es-agent@example.com',
firstname: 'E',
lastname: 'S',
email: 'es-agent@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
updated_by_id: 1,
created_by_id: 1,
)
group_without_access = Group.create_if_not_exists(
name: 'WithoutAccess',
note: 'Test for not access check.',
updated_by_id: 1,
created_by_id: 1
)
roles = Role.where( name: 'Customer' )
organization1 = Organization.create_if_not_exists(
name: 'Customer Organization Update',
updated_by_id: 1,
created_by_id: 1,
)
customer1 = User.create_or_update(
login: 'es-customer1@example.com',
firstname: 'ES',
lastname: 'Customer1',
email: 'es-customer1@example.com',
password: 'customerpw',
active: true,
organization_id: organization1.id,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
sleep 1
customer2 = User.create_or_update(
login: 'es-customer2@example.com',
firstname: 'ES',
lastname: 'Customer2',
email: 'es-customer2@example.com',
password: 'customerpw',
active: true,
organization_id: organization1.id,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
sleep 1
customer3 = User.create_or_update(
login: 'es-customer3@example.com',
firstname: 'ES',
lastname: 'Customer3',
email: 'es-customer3@example.com',
password: 'customerpw',
active: true,
roles: roles,
updated_by_id: 1,
created_by_id: 1,
)
# check tickets and search it
test 'a - tickets' do
@ -349,4 +355,9 @@ class ElasticsearchTest < ActiveSupport::TestCase
assert(!result[0], 'record 1')
end
teardown do
system('rake searchindex:drop')
end
end