from __future__ import unicode_literals from sure import expect from moto.s3.utils import bucket_name_from_url, _VersionedKeyStore def test_base_url(): expect(bucket_name_from_url('https://s3.amazonaws.com/')).should.equal(None) def test_localhost_bucket(): expect(bucket_name_from_url('https://wfoobar.localhost:5000/abc') ).should.equal("wfoobar") def test_localhost_without_bucket(): expect(bucket_name_from_url( 'https://www.localhost:5000/def')).should.equal(None) def test_versioned_key_store(): d = _VersionedKeyStore() d.should.have.length_of(0) d['key'] = [1] d.should.have.length_of(1) d['key'] = 2 d.should.have.length_of(1) d.should.have.key('key').being.equal(2) d.get.when.called_with('key').should.return_value(2) d.get.when.called_with('badkey').should.return_value(None) d.get.when.called_with('badkey', 'HELLO').should.return_value('HELLO') # Tests key[ d.shouldnt.have.key('badkey') d.__getitem__.when.called_with('badkey').should.throw(KeyError) d.getlist('key').should.have.length_of(2) d.getlist('key').should.be.equal([[1], 2]) d.getlist('badkey').should.be.none d.setlist('key', 1) d.getlist('key').should.be.equal([1]) d.setlist('key', (1, 2)) d.getlist('key').shouldnt.be.equal((1, 2)) d.getlist('key').should.be.equal([1, 2]) d.setlist('key', [[1], [2]]) d['key'].should.have.length_of(1) d.getlist('key').should.be.equal([[1], [2]])