Exemple #1
0
	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()
Exemple #2
0
	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()
Exemple #3
0
	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)
Exemple #4
0
	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)
Exemple #5
0
	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)
Exemple #6
0
    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()
Exemple #7
0
	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)
Exemple #8
0
	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)
Exemple #9
0
	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)
Exemple #10
0
	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()
Exemple #11
0
	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)
Exemple #12
0
	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)
Exemple #13
0
	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)
Exemple #14
0
	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)
Exemple #15
0
	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()
Exemple #16
0
	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()
Exemple #17
0
	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)		
Exemple #18
0
	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)
Exemple #19
0
	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()
Exemple #20
0
def getTestUserProfile():
	return test_env.getTestUserProfile()