Skip to content

Commit

Permalink
Merge pull request #132 from akretion/fix-travis-v7
Browse files Browse the repository at this point in the history
simplifed tests
  • Loading branch information
rvalyi committed Nov 22, 2015
2 parents 7807774 + 4aceae1 commit 44f1cb2
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 43 deletions.
5 changes: 1 addition & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,8 @@ install:

before_script:
- cwd=$(pwd)
- psql -c "CREATE USER openerp WITH PASSWORD 'admin';" -U postgres
- psql -c 'create database ooor_test with owner openerp;' -U postgres
- ls -la ${HOME}
- cd ${HOME}/odoo-${VERSION}
- ./openerp-server --addons-path=${HOME}/odoo-${VERSION}/addons --db_user=postgres --db_user=openerp --db_password=admin --db_host=localhost &
- ./openerp-server --addons-path=${HOME}/odoo-${VERSION}/addons --db_user=travis --db_password=admin --db_host=localhost &
- cd $cwd
- bundle install

Expand Down
2 changes: 1 addition & 1 deletion lib/ooor/errors.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def initialize(method=nil, faultCode=nil, faultString=nil, *args)
end

def filter_password(args)
if args[0].is_a?(String) && (args[1].is_a?(Integer) || args[1].to_i != 0) && args[2].is_a?(String)
if args[0].is_a?(String) && args[2].is_a?(String) && (args[1].is_a?(Integer) || args[1].to_i != 0)
args[2] = "####"
end
args.map! do |arg|
Expand Down
2 changes: 1 addition & 1 deletion lib/ooor/services.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def create(password=@session.config[:db_password], db_name='ooor_test', demo=tru
@session.logger.info "creating database #{db_name} this may take a while..."
process_id = @session.get_client(:xml, @session.base_url + "/db").call("create_database", password, db_name, demo, lang, user_password)
sleep(2)
while get_progress(password, process_id)[0] != 1
while process_id.is_a?(Integer) && get_progress(password, process_id)[0] != 1
@session.logger.info "..."
sleep(0.5)
end
Expand Down
75 changes: 38 additions & 37 deletions spec/ooor_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@
end
require File.dirname(__FILE__) + '/../lib/ooor'

OOOR_URL = ENV['OOOR_URL'] || 'http://localhost:8069/xmlrpc'
OOOR_DB_PASSWORD = ENV['OOOR_DB_PASSWORD'] || 'admin'
OOOR_USERNAME = ENV['OOOR_USERNAME'] || 'admin'
OOOR_PASSWORD = ENV['OOOR_PASSWORD'] || 'admin'
OOOR_DATABASE = ENV['OOOR_DATABASE'] || 'ooor_test'

#RSpec executable specification; see http://rspec.info/ for more information.
#Run the file with the rspec command from the rspec gem
describe Ooor do
before(:all) do
@url = 'http://localhost:8069/xmlrpc'
@db_password = 'admin'
@username = 'admin'
@password = 'admin'
@database = 'ooor_test'
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD)
end

it "should keep quiet if no database is mentioned" do
Expand All @@ -30,15 +31,15 @@
end

it "should be able to create a new database with demo data" do
unless @ooor.db.list.index(@database)
@ooor.db.create(@db_password, @database)
unless @ooor.db.list.index(OOOR_DB_PASSWORD)
@ooor.db.create(OOOR_DB_PASSWORD, OOOR_DATABASE)
end
@ooor.db.list.index(@database).should_not be_nil
@ooor.db.list.index(OOOR_DATABASE).should_not be_nil
end

describe "Configure existing database" do
before(:all) do
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE)
end

it "should be able to load a profile" do
Expand All @@ -59,8 +60,8 @@

describe "Do operations on configured database" do
before(:all) do
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database,
:models => ['res.user', 'res.partner', 'product.product', 'sale.order', 'account.invoice', 'product.category', 'ir.cron', 'ir.ui.menu', 'ir.module.module'])
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE,
models: ['res.user', 'res.partner', 'product.product', 'sale.order', 'account.invoice', 'product.category', 'ir.cron', 'ir.ui.menu', 'ir.module.module'])
end

describe "Finders operations" do
Expand Down Expand Up @@ -526,7 +527,7 @@

describe "Object context abilities" do
before(:all) do
@ooor = Ooor.new(:url => @url, :database => @database, :username => @username, :password => @password)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE)
end

it "should support context when instanciating collections" do
Expand All @@ -543,7 +544,7 @@
include Ooor

it "should support ActiveModel::Naming" do
with_ooor_session(:url => @url, :database => @database, :username => @username, :password => @password) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE) do |session|
session['product.product'].name.should == "ProductProduct"
session['product.product'].model_name.route_key.should == "product-product"
session['product.product'].model_name.param_key.should == "product_product" #TODO add more expectations
Expand All @@ -552,22 +553,22 @@

it "should support model aliases" do
Ooor.session_handler.reset!() # alias isn't part of the connection spec, we don't want connectio reuse here
with_ooor_session(:url => @url, :database => @database, :username => @username, :password => @password, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
session['products'].search().should be_kind_of(Array)
session['product.product'].alias.should == 'products'
end
end

it "should have a to_param method" do
Ooor.session_handler.reset!() # alias isn't part of the connection spec, we don't want connectio reuse here
with_ooor_session(:url => @url, :database => @database, :username => @username, :password => @password, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
session['product.product'].find(:first).to_param.should be_kind_of(String)
end
end

it "should find by permalink" do
Ooor.session_handler.reset!() # alias isn't part of the connection spec, we don't want connection reuse here
with_ooor_session(:url => @url, :database => @database, :username => @username, :password => @password, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :aliases => {en_US: {products: 'product.product'}}, :param_keys => {'product.product' => 'name'}) do |session|
lang = Ooor::Locale.to_erp_locale('en')
session['products'].find_by_permalink('Service', context: {'lang' => lang}, fields: ['name']).should be_kind_of(Ooor::Base)
end
Expand All @@ -576,7 +577,7 @@

describe "Ative-Record like Reflections" do
before(:all) do
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database, :models => ['product.product', 'product.category'], :reload => true)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :models => ['product.product', 'product.category'], :reload => true)
end

it "should test correct class attributes of ActiveRecord Reflection" do
Expand Down Expand Up @@ -617,8 +618,8 @@

describe "Multi-instance and class name scoping" do
before(:all) do
@ooor1 = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database, :scope_prefix => 'OE1', :models => ['res.partner', 'product.product'], :reload => true)
@ooor2 = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database, :scope_prefix => 'OE2', :models => ['res.partner', 'product.product'], :reload => true)
@ooor1 = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :scope_prefix => 'OE1', :models => ['res.partner', 'product.product'], :reload => true)
@ooor2 = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :scope_prefix => 'OE2', :models => ['res.partner', 'product.product'], :reload => true)
end

it "should still be possible to find a ressource using an absolute id" do
Expand All @@ -635,24 +636,24 @@
describe "Multi-sessions mode" do
include Ooor
it "should allow with_session" do
with_ooor_session(:url => @url, :username => @username, :password => @password, :database => @database) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE) do |session|
session['res.users'].search().should be_kind_of(Array)
new_user = session['res.users'].create(name: 'User created by OOOR as admin', login: 'ooor1')
new_user.destroy
end

with_ooor_session(:url => @url, :username => 'demo', :password => 'demo', :database => @database) do |session|
with_ooor_session(url: OOOR_URL, username: 'demo', password: 'demo', database: OOOR_DATABASE) do |session|
h = session['res.users'].read([1], ["password"])
h[0]['password'].should == "********"
end

with_ooor_default_session(:url => @url, :username => @username, :password => @password, :database => @database) do |session|
with_ooor_default_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE) do |session|
session['res.users'].search().should be_kind_of(Array)
end
end

it "should recover from expired sessions" do
with_ooor_session(:url => @url, :username => @username, :password => @password, :database => @database) do |session|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE) do |session|
user_obj = session['res.users']
user_obj.search().should be_kind_of(Array)
session.web_session[:session_id] = 'invalid'
Expand All @@ -662,7 +663,7 @@

it "should raise AccessDenied/UnAuthorizedError errors" do
expect do
with_ooor_session(:url => @url, :username => 'demo', :password => 'demo', :database => @database) do |session|
with_ooor_session(url: OOOR_URL, username: 'demo', password: 'demo', database: OOOR_DATABASE) do |session|
session['ir.ui.menu'].first.save
end
end.to raise_error(Ooor::UnAuthorizedError)
Expand All @@ -684,11 +685,11 @@
obj2 = 2
s1 = 1
s2 = 2
with_ooor_session(:url => @url, :username => 'demo', :password => 'demo', :database => @database) do |session1|
with_ooor_session(url: OOOR_URL, username: 'demo', password: 'demo', database: OOOR_DATABASE) do |session1|
s1 = session1
obj1 = session1['ir.ui.menu']
end
with_ooor_session(:url => @url, :username => 'demo', :password => 'demo', :database => @database) do |session2|
with_ooor_session(url: OOOR_URL, username: 'demo', password: 'demo', database: OOOR_DATABASE) do |session2|
s2 = session2
obj2 = session2['ir.ui.menu']
end
Expand All @@ -701,12 +702,12 @@
obj2 = 2
s1 = 1
s2 = 2
with_ooor_session(:url => @url, :username => 'admin', :password => 'admin', :database => @database) do |session1|
with_ooor_session(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE) do |session1|
s1 = session1
obj1 = session1['ir.ui.menu']
end

with_ooor_session(:url => @url, :username => 'demo', :password => 'demo', :database => @database) do |session2|
with_ooor_session(url: OOOR_URL, username: 'demo', password: 'demo', database: OOOR_DATABASE) do |session2|
s2 = session2
obj2 = session2['ir.ui.menu']
end
Expand All @@ -720,12 +721,12 @@
obj2 = 2
s1 = 1
s2 = 2
with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 111) do |session1|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 111) do |session1|
s1 = session1
obj1 = Ooor.model_registry.get_template(session1.config, 'ir.ui.menu')
end

with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 123) do |session2|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 123) do |session2|
s2 = session2
obj2 = Ooor.model_registry.get_template(session2.config, 'ir.ui.menu')
end
Expand All @@ -739,11 +740,11 @@
s1 = 1
s2 = 2

with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 123) do |session1|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 123) do |session1|
s1 = session1
end

with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 123) do |session1|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 123) do |session1|
s2 = session1
end

Expand All @@ -754,11 +755,11 @@
s1 = 1
s2 = 2

with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 111) do |session1|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 111) do |session1|
s1 = session1
end

with_ooor_session({:url => @url, :username => 'admin', :password => 'admin', :database => @database}, 123) do |session1|
with_ooor_session({url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE}, 123) do |session1|
s2 = session1
end

Expand All @@ -770,7 +771,7 @@

describe "Multi-format serialization" do
before(:all) do
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE)
end

it "should serialize in json" do
Expand All @@ -783,7 +784,7 @@

describe "Ruby OpenERP extensions" do
before(:all) do
@ooor = Ooor.new(:url => @url, :username => @username, :password => @password, :database => @database, :helper_paths => [File.dirname(__FILE__) + '/helpers/*'], :reload => true)
@ooor = Ooor.new(url: OOOR_URL, username: OOOR_USERNAME, password: OOOR_PASSWORD, database: OOOR_DATABASE, :helper_paths => [File.dirname(__FILE__) + '/helpers/*'], :reload => true)
end

it "should have default core helpers loaded" do
Expand Down

0 comments on commit 44f1cb2

Please sign in to comment.