From 2b10ef85175cf96d567ca82afde5e182b82cf93b Mon Sep 17 00:00:00 2001 From: Toshiya Kawasaki Date: Thu, 17 Aug 2017 04:37:42 +0900 Subject: [PATCH] dont use base64 for marker at describe_rules --- moto/elbv2/responses.py | 9 +-------- tests/test_elbv2/test_elbv2.py | 6 ++++++ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/moto/elbv2/responses.py b/moto/elbv2/responses.py index ec26922ec..a9635029c 100644 --- a/moto/elbv2/responses.py +++ b/moto/elbv2/responses.py @@ -1,6 +1,4 @@ from __future__ import unicode_literals -import sys -import base64 from moto.core.responses import BaseResponse from .models import elbv2_backends from .exceptions import DuplicateTagKeysError @@ -126,17 +124,11 @@ class ELBV2Response(BaseResponse): template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE) return template.render(load_balancers=load_balancers_resp, marker=next_marker) - def _b64_encode(self, s): - if sys.version_info >= (3, 0): - return base64.urlsafe_b64encode(bytes(s, 'UTF-8')) - return s - def describe_rules(self): listener_arn = self._get_param('ListenerArn') rule_arns = self._get_multi_param('RuleArns.member') if any(k for k in list(self.querystring.keys()) if k.startswith('RuleArns.member')) else None all_rules = self.elbv2_backend.describe_rules(listener_arn, rule_arns) all_arns = [rule.arn for rule in all_rules] - all_arns = [self._b64_encode(rule.arn) for rule in all_rules] page_size = self._get_int_param('PageSize', 50) # set 50 for temporary marker = self._get_param('Marker') @@ -146,6 +138,7 @@ class ELBV2Response(BaseResponse): start = 0 rules_resp = all_rules[start:start + page_size] next_marker = None + if len(all_rules) > start + page_size: next_marker = rules_resp[-1].arn template = self.response_template(DESCRIBE_RULES_TEMPLATE) diff --git a/tests/test_elbv2/test_elbv2.py b/tests/test_elbv2/test_elbv2.py index dec708fd5..a37eaa9bc 100644 --- a/tests/test_elbv2/test_elbv2.py +++ b/tests/test_elbv2/test_elbv2.py @@ -648,6 +648,12 @@ def test_handle_listener_rules(): obtained_rules = conn.describe_rules(ListenerArn=http_listener_arn, PageSize=1) len(obtained_rules['Rules']).should.equal(1) obtained_rules.should.have.key('NextMarker') + next_marker = obtained_rules['NextMarker'] + + following_rules = conn.describe_rules(ListenerArn=http_listener_arn, PageSize=1, Marker=next_marker) + len(following_rules['Rules']).should.equal(1) + following_rules.should.have.key('NextMarker') + following_rules['Rules'][0]['RuleArn'].should_not.equal(obtained_rules['Rules'][0]['RuleArn']) # test for invalid describe rule request with assert_raises(ClientError):