def test_binding_weixin_mpuser_get_when_binding(self): #绑定微信公众号 test_mpuser = self._create_dummy_weixin_mpuser(test_env.getTestUserProfile().user, 'dummymp') binding_mp_user = get_binding_weixin_mpuser(test_env.getTestUserProfile().user) self.assertEqual('dummymp', binding_mp_user.username) #rollback db binding_mp_user.delete()
def test_binding_mpuser_accesstoken_when_has_accesstoken(self): #没有公众号对应的access_token信息时 test_mpuser = self._create_dummy_weixin_mpuser(test_env.getTestUserProfile().user, 'dummymp') binding_mp_user = get_binding_weixin_mpuser(test_env.getTestUserProfile().user) test_mp_user_access_token = self._create_dummy_weixin_mpuser_accesstoken(test_mpuser, 'dummytoken') mp_user_access_token = get_mpuser_accesstoken(binding_mp_user) self.assertEqual('dummytoken', mp_user_access_token.access_token) #rollback db test_mpuser.delete() test_mp_user_access_token.delete()
def test_integral_increase_for_be_member_first(self): request = self.factory.get('/') request.user_profile = test_env.getTestUserProfile() increase_for_be_member_first(request, self.dummy_member) new_dummy_member = Member.objects.get(id=self.dummy_member.id) self.assertEqual(self.dummy_integral_strategy_settings.be_member_increase_count, new_dummy_member.integral)
def test_integral_increase_for_click_shared_url_without_followd_wxsid(self): request = self.factory.get('/') request.user_profile = test_env.getTestUserProfile() increase_for_click_shared_url(request) new_dummy_member = self._reload_member(self.dummy_member) self._assert_member_integral_equal(self.dummy_member, new_dummy_member)
def test_shared_url_request_process_third_case_for_redirect_process(self): #请求url中仅包含fwxsid参数 request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) self._assert_equal_redirect_to_with_fwxsid_and_uuid_cookie('/', self.dummy_token, response) #请求url中包含除了fwxsid之外的其他参数 request = self.factory.get("/?{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) self._assert_equal_redirect_to_with_fwxsid_and_uuid_cookie('/?k=v', self.dummy_token, response) request = self.factory.get("/?k=v&{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) self._assert_equal_redirect_to_with_fwxsid_and_uuid_cookie('/?k=v&k=v', self.dummy_token, response)
def setUp(self): menu_view.weixin_menu_request = MockWeixinMenuRequest() menu_view.notify_send_func = stub_send_notify self.factory = RequestFactory() self.test_user = test_env.getTestUserProfile().user WeixinMpUser.objects.all().delete() WeixinMpUserAccessToken.objects.all().delete() self._create_test_weixin_user_access_token()
def test_shared_url_request_process_third_case_with_shared_session_in_cookie_and_same_with_from_url(self): request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.FOLLOWED_WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分不变, 仅发生url跳转 self._assert_member_integral_equal(self.dummy_member, new_dummy_member)
def test_shared_url_request_process_third_case_with_shared_session_in_cookie_and_notsame_with_from_url(self): integral.is_buyed_querier = stube_whether_buyed_checker_always_return_true request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分增加 self.assertEqual(self.dummy_integral_strategy_settings.click_shared_url_increase_count_after_buy, new_dummy_member.integral)
def test_integral_increase_for_click_shared_url_with_author_buyed_and_fist_visit(self): integral.is_buyed_querier = stube_whether_buyed_checker_always_return_true request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.user_profile = test_env.getTestUserProfile() increase_for_click_shared_url(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者积分增加self.dummy_integral_strategy_settings.click_shared_url_increase_count_after_buy self.assertEqual(self.dummy_integral_strategy_settings.click_shared_url_increase_count_after_buy, new_dummy_member.integral)
def test_shared_url_request_process_first_case_for_redirect(self): dummy_buyer_wxsid = 'dummy_buyer' dummy_buyer_weixin_user_token = self._create_dummy_weixin_user_token(dummy_buyer_wxsid, 'dummy_buyer') dummy_buyer_member = self._create_dummy_member(dummy_buyer_weixin_user_token) try: #请求url中仅包含fwxsid参数 request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = dummy_buyer_wxsid request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_url = response.get('Location') expected_new_url = "/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, dummy_buyer_wxsid) self.assertEqual(expected_new_url, new_url) #请求url中包含除了fwxsid之外的其他参数 request = self.factory.get("/?{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = dummy_buyer_wxsid request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_url = response.get('Location') expected_new_url = "/?{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, dummy_buyer_wxsid) self.assertEqual(expected_new_url, new_url) request = self.factory.get("/?k=v&{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = dummy_buyer_wxsid request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_url = response.get('Location') expected_new_url = "/?k=v&{}={}&k=v".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, dummy_buyer_wxsid) self.assertEqual(expected_new_url, new_url) finally: #rollback the db dummy_buyer_weixin_user_token.delete() dummy_buyer_member.delete()
def test_integral_increase_for_click_shared_url_by_author_itself(self): #测试在分享者自己点击自己分享的链接的积分计算 request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.user_profile = test_env.getTestUserProfile() increase_for_click_shared_url(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分不变 self._assert_member_integral_equal(self.dummy_member, new_dummy_member)
def test_integral_increase_for_buy_via_shared_url_buyed_by_author_itself(self): #测试分享者自己通过自己分享的链接进行购买的积分计算 request = self.factory.get("/") request.COOKIES[settings.FOLLOWED_WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.user_profile = test_env.getTestUserProfile() increase_for_buy_via_shared_url(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分不变 self._assert_member_integral_equal(self.dummy_member, new_dummy_member)
def test_integral_increase_for_click_shared_url_with_author_buyed_and_has_visit_by_wxsid(self): integral.is_buyed_querier = stube_whether_buyed_checker_always_return_true request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.FOLLOWED_WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = 'dummy_wxsid' request.user_profile = test_env.getTestUserProfile() #该用户已经访问过当前请求的页面 record_shared_page_visit(request) increase_for_click_shared_url(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分不变 self._assert_member_integral_equal(self.dummy_member, new_dummy_member)
def test_shared_url_request_process_third_case_with_shared_session_in_cookie_and_notsame_with_from_url(self): integral.is_buyed_querier = stube_whether_buyed_checker_always_return_true request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.FOLLOWED_WEIXIN_USER_SESSION_KEY_FILED] = 'balabala' request.COOKIES[settings.NON_WEIXIN_USER_COOKIE_UUID_FILED] = 'dummy_uuid' request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_dummy_member = self._reload_member(self.dummy_member) #结果应该是分享者的积分增加, 且发生url跳转,同时cookie中uuid信息不变 self.assertEqual(self.dummy_integral_strategy_settings.click_shared_url_increase_count_after_buy, new_dummy_member.integral) expected_uuid_cookie = response.cookies[settings.NON_WEIXIN_USER_COOKIE_UUID_FILED].value self.assertTrue('dummy_uuid', expected_uuid_cookie)
def test_shared_url_request_process_first_case_for_integral_caculate(self): integral.is_buyed_querier = stube_whether_buyed_checker_always_return_true dummy_buyer_wxsid = 'dummy_buyer' dummy_buyer_weixin_user_token = self._create_dummy_weixin_user_token(dummy_buyer_wxsid, 'dummy_buyer') dummy_buyer_member = self._create_dummy_member(dummy_buyer_weixin_user_token) try: request = self.factory.get("/?{}={}".format(settings.FOLLOWED_WEIXIN_USER_URL_QUERY_FILED, self.dummy_token)) request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = dummy_buyer_wxsid request.user_profile = test_env.getTestUserProfile() response = process_shared_url_request(request) new_dummy_member = self._reload_member(self.dummy_member) self.assertEqual(self.dummy_integral_strategy_settings.click_shared_url_increase_count_after_buy, new_dummy_member.integral) finally: #rollback the db dummy_buyer_weixin_user_token.delete() dummy_buyer_member.delete()
def test_integral_increase_for_buy_via_shared_url(self): dummy_buyer_wxsid = 'dummy_buyer' dummy_buyer_weixin_user_token = self._create_dummy_weixin_user_token(dummy_buyer_wxsid, 'dummy_buyer') dummy_buyer_member = self._create_dummy_member(dummy_buyer_weixin_user_token) request = self.factory.get("/") request.COOKIES[settings.FOLLOWED_WEIXIN_USER_SESSION_KEY_FILED] = self.dummy_token request.COOKIES[settings.WEIXIN_USER_SESSION_KEY_FILED] = dummy_buyer_wxsid request.user_profile = test_env.getTestUserProfile() increase_for_buy_via_shared_url(request) new_author_member = self._reload_member(self.dummy_member) new_buyer_member = self._reload_member(dummy_buyer_member) #结果应该是: #分享者的积分增加self.dummy_integral_strategy_settings.buy_via_shared_url_increase_count_for_author #购买者的积分增加self.dummy_integral_strategy_settings.buy_via_shared_url_increase_count_for_buyer self.assertEqual(self.dummy_integral_strategy_settings.buy_via_shared_url_increase_count_for_author, new_author_member.integral) self.assertEqual(self.dummy_integral_strategy_settings.buy_via_shared_url_increase_count_for_buyer, new_buyer_member.integral) #rollback the db dummy_buyer_weixin_user_token.delete() dummy_buyer_member.delete()
def test_binding_mpuser_accesstoken_when_has_no_accesstoken(self): #没有公众号对应的access_token信息时 test_mpuser = self._create_dummy_weixin_mpuser(test_env.getTestUserProfile().user, 'dummymp') binding_mp_user = get_binding_weixin_mpuser(test_env.getTestUserProfile().user) mp_user_access_token = get_mpuser_accesstoken(binding_mp_user) self.assertTrue(mp_user_access_token is None)
def test_binding_weixin_mpuser_get_when_nobinding(self): #在没有绑定任何微信公众号的时候获取的为空 binding_mp_user = get_binding_weixin_mpuser(test_env.getTestUserProfile().user) self.assertTrue(binding_mp_user is None)
def _update_test_user_profile_shop_name(self, shop_name): test_user_profile = test_env.getTestUserProfile() test_user_profile.shop_name = shop_name test_user_profile.save()
def getTestUserProfile(): return test_env.getTestUserProfile()