| 74 | self.assertEqual(req_context.client_feature_flags, client_feature_flags) |
| 75 | |
| 76 | def test_replace(self): |
| 77 | environ1 = {"one": "two", "three": "four"} |
| 78 | auth1 = auth_lib.AuthContext({}, environ1) |
| 79 | environ2 = {"one": "two"} |
| 80 | auth2 = auth_lib.AuthContext({}, environ2) |
| 81 | remote_ip1 = ipaddress.ip_address("192.168.0.1") |
| 82 | remote_ip2 = ipaddress.ip_address("192.168.0.2") |
| 83 | x_forwarded_for_ips1 = (remote_ip1, REMOTE_IP) |
| 84 | x_forwarded_for_ips2 = (remote_ip2, REMOTE_IP) |
| 85 | client_feature_flags1 = {"oneFlag": True} |
| 86 | client_feature_flags2 = {"twoFlag": False} |
| 87 | |
| 88 | req_context = context.RequestContext( |
| 89 | auth=auth1, |
| 90 | remote_ip=remote_ip1, |
| 91 | x_forwarded_for=x_forwarded_for_ips1, |
| 92 | client_feature_flags=client_feature_flags1, |
| 93 | ) |
| 94 | self.assertEqual(req_context.auth, auth1) |
| 95 | self.assertEqual(req_context.remote_ip, remote_ip1) |
| 96 | self.assertEqual(req_context.x_forwarded_for, x_forwarded_for_ips1) |
| 97 | self.assertEqual( |
| 98 | req_context.client_feature_flags, client_feature_flags1 |
| 99 | ) |
| 100 | |
| 101 | req_context_new = req_context.replace(auth=auth2) |
| 102 | self.assertEqual(req_context_new.auth, auth2) |
| 103 | self.assertEqual(req_context_new.remote_ip, req_context.remote_ip) |
| 104 | self.assertEqual( |
| 105 | req_context_new.x_forwarded_for, req_context.x_forwarded_for |
| 106 | ) |
| 107 | self.assertEqual( |
| 108 | req_context_new.client_feature_flags, |
| 109 | req_context.client_feature_flags, |
| 110 | ) |
| 111 | |
| 112 | req_context_new = req_context.replace(remote_ip=remote_ip2) |
| 113 | self.assertEqual(req_context_new.auth, req_context.auth) |
| 114 | self.assertEqual(req_context_new.remote_ip, remote_ip2) |
| 115 | self.assertEqual( |
| 116 | req_context_new.x_forwarded_for, req_context.x_forwarded_for |
| 117 | ) |
| 118 | self.assertEqual( |
| 119 | req_context_new.client_feature_flags, |
| 120 | req_context.client_feature_flags, |
| 121 | ) |
| 122 | |
| 123 | req_context_new = req_context.replace( |
| 124 | x_forwarded_for=x_forwarded_for_ips2 |
| 125 | ) |
| 126 | self.assertEqual(req_context_new.auth, req_context.auth) |
| 127 | self.assertEqual(req_context_new.remote_ip, req_context.remote_ip) |
| 128 | self.assertEqual(req_context_new.x_forwarded_for, x_forwarded_for_ips2) |
| 129 | self.assertEqual( |
| 130 | req_context_new.client_feature_flags, |
| 131 | req_context.client_feature_flags, |
| 132 | ) |
| 133 | |