maestrano 1.0.0.pre.RC4 → 1.0.0.pre.RC5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/maestrano.rb +1 -1
- data/lib/maestrano/sso.rb +21 -21
- data/lib/maestrano/version.rb +1 -1
- data/test/maestrano/account/recurring_bill_test.rb +3 -3
- data/test/maestrano/api/resource_test.rb +22 -22
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 026f33b3cb669405a068fd77f74860e6767950d8
         | 
| 4 | 
            +
              data.tar.gz: 6a04ca35d44ddeb69ba115f09d43157c6cb55b6a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 83aa95476fd6c663d3a091fe521c6f917fc925dbd16b315663b47cc486ddd301af58b01a987421992feb99714d8aa5b368a62a150e803c657f4210879a6bde06
         | 
| 7 | 
            +
              data.tar.gz: a2b69dadf460026c307716e57466225071a34fbd01cd6d98bdc80226ffe481c6b8630eb6def6824b4d372283430f1184711d0289926745026b25261a10502545
         | 
    
        data/lib/maestrano.rb
    CHANGED
    
    | @@ -278,7 +278,7 @@ module Maestrano | |
| 278 278 | 
             
                    last_prop = props.pop
         | 
| 279 279 | 
             
                    obj = props.inject(self,:send)
         | 
| 280 280 | 
             
                    obj.send(last_prop)
         | 
| 281 | 
            -
                  elsif EVT_CONFIG[@environment.to_s].has_key?(real_param.to_s)
         | 
| 281 | 
            +
                  elsif EVT_CONFIG.has_key?(@environment.to_s) && EVT_CONFIG[@environment.to_s].has_key?(real_param.to_s)
         | 
| 282 282 | 
             
                    EVT_CONFIG[@environment.to_s][real_param.to_s]
         | 
| 283 283 | 
             
                  else
         | 
| 284 284 | 
             
                    raise ArgumentError, "No such configuration parameter: '#{parameter}'"
         | 
    
        data/lib/maestrano/sso.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            module Maestrano
         | 
| 2 2 | 
             
              module SSO
         | 
| 3 3 | 
             
                include Preset
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
                # Return the saml_settings based on
         | 
| 6 6 | 
             
                # Maestrano configuration
         | 
| 7 7 | 
             
                def self.saml_settings
         | 
| @@ -14,75 +14,75 @@ module Maestrano | |
| 14 14 | 
             
                  settings.name_identifier_format         = Maestrano[preset].param('sso.name_id_format')
         | 
| 15 15 | 
             
                  settings
         | 
| 16 16 | 
             
                end
         | 
| 17 | 
            -
             | 
| 17 | 
            +
             | 
| 18 18 | 
             
                # Build a new SAML Request
         | 
| 19 19 | 
             
                def self.build_request(get_params = {})
         | 
| 20 20 | 
             
                  Maestrano::Saml::Request[preset].new(get_params)
         | 
| 21 21 | 
             
                end
         | 
| 22 | 
            -
             | 
| 22 | 
            +
             | 
| 23 23 | 
             
                # Build a new SAML response
         | 
| 24 24 | 
             
                def self.build_response(saml_post_param)
         | 
| 25 25 | 
             
                  Maestrano::Saml::Response[preset].new(saml_post_param)
         | 
| 26 26 | 
             
                end
         | 
| 27 | 
            -
             | 
| 27 | 
            +
             | 
| 28 28 | 
             
                def self.enabled?
         | 
| 29 29 | 
             
                  !!Maestrano[preset].param('sso.enabled')
         | 
| 30 30 | 
             
                end
         | 
| 31 | 
            -
             | 
| 31 | 
            +
             | 
| 32 32 | 
             
                def self.init_url
         | 
| 33 33 | 
             
                  host = Maestrano[preset].param('sso.idm')
         | 
| 34 34 | 
             
                  path = Maestrano[preset].param('sso.init_path')
         | 
| 35 35 | 
             
                  return "#{host}#{path}"
         | 
| 36 36 | 
             
                end
         | 
| 37 | 
            -
             | 
| 37 | 
            +
             | 
| 38 38 | 
             
                def self.consume_url
         | 
| 39 39 | 
             
                  host = Maestrano[preset].param('sso.idm')
         | 
| 40 40 | 
             
                  path = Maestrano[preset].param('sso.consume_path')
         | 
| 41 41 | 
             
                  return "#{host}#{path}"
         | 
| 42 42 | 
             
                end
         | 
| 43 | 
            -
             | 
| 43 | 
            +
             | 
| 44 44 | 
             
                def self.logout_url
         | 
| 45 | 
            -
                  host = Maestrano[preset].param(' | 
| 45 | 
            +
                  host = Maestrano[preset].param('api.host')
         | 
| 46 46 | 
             
                  path = '/app_logout'
         | 
| 47 47 | 
             
                  return "#{host}#{path}"
         | 
| 48 48 | 
             
                end
         | 
| 49 | 
            -
             | 
| 49 | 
            +
             | 
| 50 50 | 
             
                def self.unauthorized_url
         | 
| 51 | 
            -
                  host = Maestrano[preset].param(' | 
| 51 | 
            +
                  host = Maestrano[preset].param('api.host')
         | 
| 52 52 | 
             
                  path = '/app_access_unauthorized'
         | 
| 53 53 | 
             
                  return "#{host}#{path}";
         | 
| 54 54 | 
             
                end
         | 
| 55 | 
            -
             | 
| 55 | 
            +
             | 
| 56 56 | 
             
                def self.idp_url
         | 
| 57 | 
            -
                  host = Maestrano[preset].param(' | 
| 58 | 
            -
                  api_base = Maestrano[preset].param(' | 
| 57 | 
            +
                  host = Maestrano[preset].param('api.host')
         | 
| 58 | 
            +
                  api_base = Maestrano[preset].param('api.base')
         | 
| 59 59 | 
             
                  endpoint = 'auth/saml'
         | 
| 60 60 | 
             
                  return "#{host}#{api_base}#{endpoint}"
         | 
| 61 61 | 
             
                end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                def self.session_check_url(user_uid,sso_session) | 
| 64 | 
            -
                  host = Maestrano[preset].param(' | 
| 65 | 
            -
                  api_base = Maestrano[preset].param(' | 
| 62 | 
            +
             | 
| 63 | 
            +
                def self.session_check_url(user_uid,sso_session)
         | 
| 64 | 
            +
                  host = Maestrano[preset].param('api.host')
         | 
| 65 | 
            +
                  api_base = Maestrano[preset].param('api.base')
         | 
| 66 66 | 
             
                  endpoint = 'auth/saml'
         | 
| 67 67 | 
             
                  return URI.escape("#{host}#{api_base}#{endpoint}/#{user_uid}?session=#{sso_session}")
         | 
| 68 68 | 
             
                end
         | 
| 69 | 
            -
             | 
| 69 | 
            +
             | 
| 70 70 | 
             
                # Set maestrano attributes in session
         | 
| 71 71 | 
             
                # Takes the BaseUser hash representation and current session
         | 
| 72 72 | 
             
                # in arguments
         | 
| 73 73 | 
             
                def self.set_session(session, auth)
         | 
| 74 74 | 
             
                  Maestrano::SSO::Session[preset].from_user_auth_hash(session,auth).save
         | 
| 75 75 | 
             
                end
         | 
| 76 | 
            -
             | 
| 76 | 
            +
             | 
| 77 77 | 
             
                # Destroy the maestrano session in http session
         | 
| 78 78 | 
             
                def self.clear_session(session)
         | 
| 79 79 | 
             
                  session.delete(:maestrano)
         | 
| 80 80 | 
             
                  session.delete('maestrano')
         | 
| 81 81 | 
             
                end
         | 
| 82 | 
            -
             | 
| 82 | 
            +
             | 
| 83 83 | 
             
                # Metaclass definitions
         | 
| 84 84 | 
             
                class << self
         | 
| 85 85 | 
             
                  alias_method :unset_session, :clear_session
         | 
| 86 86 | 
             
                end
         | 
| 87 87 | 
             
              end
         | 
| 88 | 
            -
            end
         | 
| 88 | 
            +
            end
         | 
    
        data/lib/maestrano/version.rb
    CHANGED
    
    
| @@ -4,7 +4,7 @@ module Maestrano | |
| 4 4 | 
             
              module Account
         | 
| 5 5 | 
             
                class RecurringBillTest < Test::Unit::TestCase
         | 
| 6 6 | 
             
                  include APITestHelper
         | 
| 7 | 
            -
             | 
| 7 | 
            +
             | 
| 8 8 | 
             
                  should "be listable" do
         | 
| 9 9 | 
             
                    @api_mock.expects(:get).once.returns(test_response(test_account_recurring_bill_array))
         | 
| 10 10 | 
             
                    c = Maestrano::Account::RecurringBill.all
         | 
| @@ -31,7 +31,7 @@ module Maestrano | |
| 31 31 |  | 
| 32 32 | 
             
                  should "successfully create a remote bill when passed correct parameters" do
         | 
| 33 33 | 
             
                    @api_mock.expects(:post).with do |url, api_token, params|
         | 
| 34 | 
            -
                      url == "#{Maestrano.param(' | 
| 34 | 
            +
                      url == "#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/recurring_bills" && api_token.nil? &&
         | 
| 35 35 | 
             
                      CGI.parse(params) == {"group_id"=>["cld-1"], "price_cents"=>["23000"], "currency"=>["AUD"], "description"=>["Some recurring bill"], "period"=>["Month"]}
         | 
| 36 36 | 
             
                    end.once.returns(test_response(test_account_recurring_bill))
         | 
| 37 37 |  | 
| @@ -46,4 +46,4 @@ module Maestrano | |
| 46 46 | 
             
                  end
         | 
| 47 47 | 
             
                end
         | 
| 48 48 | 
             
              end
         | 
| 49 | 
            -
            end
         | 
| 49 | 
            +
            end
         | 
| @@ -5,7 +5,7 @@ module Maestrano | |
| 5 5 | 
             
              module API
         | 
| 6 6 | 
             
                class ResourceTest < Test::Unit::TestCase
         | 
| 7 7 | 
             
                  include APITestHelper
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 9 | 
             
                  should "creating a new Resource should not fetch over the network" do
         | 
| 10 10 | 
             
                    @api_mock.expects(:get).never
         | 
| 11 11 | 
             
                    Maestrano::Account::Bill.new("someid")
         | 
| @@ -61,11 +61,11 @@ module Maestrano | |
| 61 61 | 
             
                        @original_api_key = Maestrano.param('api.key')
         | 
| 62 62 | 
             
                        Maestrano.configure { |c| c.api_key = nil }
         | 
| 63 63 | 
             
                      end
         | 
| 64 | 
            -
             | 
| 64 | 
            +
             | 
| 65 65 | 
             
                      teardown do
         | 
| 66 66 | 
             
                        Maestrano.configure { |c| c.api_key = @original_api_key }
         | 
| 67 67 | 
             
                      end
         | 
| 68 | 
            -
             | 
| 68 | 
            +
             | 
| 69 69 | 
             
                      should "use the per-object credential when creating" do
         | 
| 70 70 | 
             
                        Maestrano::API::Operation::Base.expects(:execute_request).with do |opts|
         | 
| 71 71 | 
             
                          opts[:headers][:authorization] == "Basic #{Base64.strict_encode64('someid:somekey')}"
         | 
| @@ -103,22 +103,22 @@ module Maestrano | |
| 103 103 | 
             
                  context "with valid credentials" do
         | 
| 104 104 | 
             
                    should "urlencode values in GET params" do
         | 
| 105 105 | 
             
                      response = test_response(test_account_bill_array)
         | 
| 106 | 
            -
                      @api_mock.expects(:get).with("#{Maestrano.param(' | 
| 106 | 
            +
                      @api_mock.expects(:get).with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills?bill=test%20bill", nil, nil).returns(response)
         | 
| 107 107 | 
             
                      bills = Maestrano::Account::Bill.all(:bill => 'test bill').data
         | 
| 108 108 | 
             
                      assert bills.kind_of? Array
         | 
| 109 109 | 
             
                    end
         | 
| 110 110 |  | 
| 111 111 | 
             
                    should "construct URL properly with base query parameters" do
         | 
| 112 112 | 
             
                      response = test_response(test_account_bill_array)
         | 
| 113 | 
            -
                      @api_mock.expects(:get).with("#{Maestrano.param(' | 
| 113 | 
            +
                      @api_mock.expects(:get).with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills?bill=test_account_bill", nil, nil).returns(response)
         | 
| 114 114 | 
             
                      bills = Maestrano::Account::Bill.all(:bill => 'test_account_bill')
         | 
| 115 115 |  | 
| 116 | 
            -
             | 
| 116 | 
            +
             | 
| 117 117 | 
             
                    end
         | 
| 118 | 
            -
             | 
| 118 | 
            +
             | 
| 119 119 | 
             
                    should "construct URL properly with multiple query parameters" do
         | 
| 120 120 | 
             
                      response = test_response(test_account_bill_array)
         | 
| 121 | 
            -
                      @api_mock.expects(:get).with("#{Maestrano.param(' | 
| 121 | 
            +
                      @api_mock.expects(:get).with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills?bill=test_account_bill&paid=true", nil, nil).returns(response)
         | 
| 122 122 | 
             
                      bills = Maestrano::Account::Bill.all(bill:'test_account_bill', paid: true)
         | 
| 123 123 | 
             
                    end
         | 
| 124 124 |  | 
| @@ -162,15 +162,15 @@ module Maestrano | |
| 162 162 | 
             
                      @api_mock.expects(:get).with do |url, api_token, params|
         | 
| 163 163 | 
             
                        uri = URI(url)
         | 
| 164 164 | 
             
                        query = CGI.parse(uri.query)
         | 
| 165 | 
            -
                        (url =~ %r{^#{Maestrano.param(' | 
| 165 | 
            +
                        (url =~ %r{^#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills?} &&
         | 
| 166 166 | 
             
                         query.keys.sort == ['offset', 'sad'])
         | 
| 167 167 | 
             
                      end.returns(test_response(test_account_bill_array_one))
         | 
| 168 168 | 
             
                      Maestrano::Account::Bill.all(:count => nil, :offset => 5, :sad => false)
         | 
| 169 169 | 
             
                    end
         | 
| 170 | 
            -
             | 
| 170 | 
            +
             | 
| 171 171 | 
             
                    should "setting a nil value for a param should exclude that param from the POST request" do
         | 
| 172 172 | 
             
                      @api_mock.expects(:post).with do |url, api_token, params|
         | 
| 173 | 
            -
                        url == "#{Maestrano.param(' | 
| 173 | 
            +
                        url == "#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills" &&
         | 
| 174 174 | 
             
                          api_token.nil? &&
         | 
| 175 175 | 
             
                          CGI.parse(params) == { 'group_id' => ['cld-1'], 'price_cents' => ['23000'], 'currency' => ['AUD'] }
         | 
| 176 176 | 
             
                      end.returns(test_response(test_account_bill))
         | 
| @@ -184,7 +184,7 @@ module Maestrano | |
| 184 184 |  | 
| 185 185 | 
             
                    should "requesting with a unicode ID should result in a request" do
         | 
| 186 186 | 
             
                      response = test_response(test_missing_id_error, 404)
         | 
| 187 | 
            -
                      @api_mock.expects(:get).once.with("#{Maestrano.param(' | 
| 187 | 
            +
                      @api_mock.expects(:get).once.with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills/%E2%98%83", nil, nil).raises(RestClient::ExceptionWithResponse.new(response, 404))
         | 
| 188 188 | 
             
                      c = Maestrano::Account::Bill.new("☃")
         | 
| 189 189 | 
             
                      assert_raises(Maestrano::API::Error::InvalidRequestError) { c.refresh }
         | 
| 190 190 | 
             
                    end
         | 
| @@ -196,7 +196,7 @@ module Maestrano | |
| 196 196 |  | 
| 197 197 | 
             
                    should "making a GET request with parameters should have a query string and no body" do
         | 
| 198 198 | 
             
                      params = { :limit => 1 }
         | 
| 199 | 
            -
                      @api_mock.expects(:get).once.with("#{Maestrano.param(' | 
| 199 | 
            +
                      @api_mock.expects(:get).once.with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills?limit=1", nil, nil).returns(test_response(test_account_bill_array_one))
         | 
| 200 200 | 
             
                      Maestrano::Account::Bill.all(params)
         | 
| 201 201 | 
             
                    end
         | 
| 202 202 |  | 
| @@ -210,7 +210,7 @@ module Maestrano | |
| 210 210 | 
             
                        period_started_at: date
         | 
| 211 211 | 
             
                      }
         | 
| 212 212 | 
             
                      @api_mock.expects(:post).once.with do |url, get, post|
         | 
| 213 | 
            -
                        get.nil? && | 
| 213 | 
            +
                        get.nil? &&
         | 
| 214 214 | 
             
                        CGI.parse(post) == {"group_id"=>["cld-1"], "price_cents"=>["23000"], "currency"=>["AUD"], "description"=>["Some bill"], "period_started_at" => ["#{date.iso8601}"]}
         | 
| 215 215 | 
             
                      end.returns(test_response(test_account_bill))
         | 
| 216 216 | 
             
                      Maestrano::Account::Bill.create(params)
         | 
| @@ -242,15 +242,15 @@ module Maestrano | |
| 242 242 |  | 
| 243 243 | 
             
                    should "updating an object should issue a PUT request with only the changed properties" do
         | 
| 244 244 | 
             
                      @api_mock.expects(:put).with do |url, api_token, params|
         | 
| 245 | 
            -
                        url == "#{Maestrano.param(' | 
| 245 | 
            +
                        url == "#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills/bill-1" &&
         | 
| 246 246 | 
             
                        api_token.nil? && CGI.parse(params) == {'description' => ['another_mn']}
         | 
| 247 247 | 
             
                      end.once.returns(test_response(test_account_bill))
         | 
| 248 | 
            -
             | 
| 248 | 
            +
             | 
| 249 249 | 
             
                      c = Maestrano::Account::Bill.construct_from(test_account_bill[:data])
         | 
| 250 250 | 
             
                      class << c
         | 
| 251 251 | 
             
                        include Maestrano::API::Operation::Update
         | 
| 252 252 | 
             
                      end
         | 
| 253 | 
            -
             | 
| 253 | 
            +
             | 
| 254 254 | 
             
                      c.description = "another_mn"
         | 
| 255 255 | 
             
                      c.save
         | 
| 256 256 | 
             
                    end
         | 
| @@ -261,7 +261,7 @@ module Maestrano | |
| 261 261 | 
             
                      class << c
         | 
| 262 262 | 
             
                        include Maestrano::API::Operation::Update
         | 
| 263 263 | 
             
                      end
         | 
| 264 | 
            -
             | 
| 264 | 
            +
             | 
| 265 265 | 
             
                      c.description = "another_mn"
         | 
| 266 266 | 
             
                      c.save
         | 
| 267 267 | 
             
                    end
         | 
| @@ -269,7 +269,7 @@ module Maestrano | |
| 269 269 | 
             
                    should "deleting should send no props and result in an object that has no props other deleted" do
         | 
| 270 270 | 
             
                      @api_mock.expects(:get).never
         | 
| 271 271 | 
             
                      @api_mock.expects(:post).never
         | 
| 272 | 
            -
                      @api_mock.expects(:delete).with("#{Maestrano.param(' | 
| 272 | 
            +
                      @api_mock.expects(:delete).with("#{Maestrano.param('api.host')}#{Maestrano.param('api.base')}account/bills/bill-1", nil, nil).once.returns(test_response(test_account_bill))
         | 
| 273 273 |  | 
| 274 274 | 
             
                      c = Maestrano::Account::Bill.construct_from(test_account_bill[:data])
         | 
| 275 275 | 
             
                      class << c
         | 
| @@ -295,7 +295,7 @@ module Maestrano | |
| 295 295 | 
             
                      c = Maestrano::Account::Bill.all.data
         | 
| 296 296 | 
             
                      assert c.kind_of? Array
         | 
| 297 297 | 
             
                      assert c[0].kind_of? Maestrano::Account::Bill
         | 
| 298 | 
            -
             | 
| 298 | 
            +
             | 
| 299 299 | 
             
                      # No object to test for the moment
         | 
| 300 300 | 
             
                      #assert c[0].card.kind_of?(Maestrano::API::Object) && c[0].card.object == 'card'
         | 
| 301 301 | 
             
                    end
         | 
| @@ -335,9 +335,9 @@ module Maestrano | |
| 335 335 |  | 
| 336 336 | 
             
                        assert_equal true, rescued
         | 
| 337 337 | 
             
                      end
         | 
| 338 | 
            -
             | 
| 338 | 
            +
             | 
| 339 339 | 
             
                    end
         | 
| 340 340 | 
             
                  end
         | 
| 341 341 | 
             
                end
         | 
| 342 342 | 
             
              end
         | 
| 343 | 
            -
            end
         | 
| 343 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: maestrano
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0.0.pre. | 
| 4 | 
            +
              version: 1.0.0.pre.RC5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Arnaud Lachaume
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-09- | 
| 11 | 
            +
            date: 2016-09-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rest-client
         |