~ubuntu-branches/ubuntu/trusty/swift/trusty-updates

« back to all changes in this revision

Viewing changes to test/unit/common/middleware/test_cname_lookup.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, James Page, Chuck Short
  • Date: 2013-08-13 10:37:13 UTC
  • mfrom: (1.2.21)
  • Revision ID: package-import@ubuntu.com-20130813103713-1ctbx4zifyljs2aq
Tags: 1.9.1-0ubuntu1
[ James Page ]
* d/control: Update VCS fields for new branch locations.

[ Chuck Short ]
* New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from swift.common.middleware import cname_lookup
27
27
from swift.common.swob import Request
28
28
 
 
29
 
29
30
class FakeApp(object):
30
31
 
31
32
    def __call__(self, env, start_response):
38
39
 
39
40
original_lookup = cname_lookup.lookup_cname
40
41
 
 
42
 
41
43
class TestCNAMELookup(unittest.TestCase):
42
44
 
43
45
    def setUp(self):
82
84
    def test_good_lookup(self):
83
85
        req = Request.blank('/', environ={'REQUEST_METHOD': 'GET'},
84
86
                            headers={'Host': 'mysite.com'})
85
 
        
 
87
 
86
88
        def my_lookup(d):
87
89
            return 0, '%s.example.com' % d
88
90
        cname_lookup.lookup_cname = my_lookup
89
 
        
 
91
 
90
92
        resp = self.app(req.environ, start_response)
91
93
        self.assertEquals(resp, 'FAKE APP')
92
94
        req = Request.blank('/', environ={'REQUEST_METHOD': 'GET'},
102
104
    def test_lookup_chain_too_long(self):
103
105
        req = Request.blank('/', environ={'REQUEST_METHOD': 'GET'},
104
106
                            headers={'Host': 'mysite.com'})
105
 
        
 
107
 
106
108
        def my_lookup(d):
107
109
            if d == 'mysite.com':
108
110
                site = 'level1.foo.com'
112
114
                site = 'bar.example.com'
113
115
            return 0, site
114
116
        cname_lookup.lookup_cname = my_lookup
115
 
        
 
117
 
116
118
        resp = self.app(req.environ, start_response)
117
119
        self.assertEquals(resp, ['CNAME lookup failed after 2 tries'])
118
120
 
119
121
    def test_lookup_chain_bad_target(self):
120
122
        req = Request.blank('/', environ={'REQUEST_METHOD': 'GET'},
121
123
                            headers={'Host': 'mysite.com'})
122
 
        
 
124
 
123
125
        def my_lookup(d):
124
126
            return 0, 'some.invalid.site.com'
125
127
        cname_lookup.lookup_cname = my_lookup
126
 
        
 
128
 
127
129
        resp = self.app(req.environ, start_response)
128
130
        self.assertEquals(resp,
129
131
                         ['CNAME lookup failed to resolve to a valid domain'])
131
133
    def test_something_weird(self):
132
134
        req = Request.blank('/', environ={'REQUEST_METHOD': 'GET'},
133
135
                            headers={'Host': 'mysite.com'})
134
 
        
 
136
 
135
137
        def my_lookup(d):
136
138
            return 0, None
137
139
        cname_lookup.lookup_cname = my_lookup
138
 
        
 
140
 
139
141
        resp = self.app(req.environ, start_response)
140
142
        self.assertEquals(resp,
141
143
                         ['CNAME lookup failed to resolve to a valid domain'])
144
146
        def my_lookup(d):
145
147
            return 0, '%s.example.com' % d
146
148
        cname_lookup.lookup_cname = my_lookup
 
149
 
147
150
        class memcache_stub(object):
148
151
            def __init__(self):
149
152
                self.cache = {}
 
153
 
150
154
            def get(self, key):
151
155
                return self.cache.get(key, None)
 
156
 
152
157
            def set(self, key, value, *a, **kw):
153
158
                self.cache[key] = value
154
159
        memcache = memcache_stub()