def _render_cpl(description, request, title, user, video_id, visit_function, video_id_next_class=None): if user.is_authenticated: visit_function(user, request.GET.get('utm_source', 'unknown')) launch_status = get_launch_status() if launch_status == LAUNCH_STATUS_PPL and not request.GET.get('debug'): return redirect(reverse('launch:landing_page')) if launch_status == LAUNCH_STATUS_OPEN_CART and not request.GET.get( 'debug'): return redirect(reverse('checkout:bootcamp_lp')) ctx = { 'data_href': f'https://{build_absolute_uri(request.path)}', 'video_id': video_id, 'video_id_next_class': video_id_next_class, 'title': title, 'description': description, 'launch_status': launch_status, 'opened_cpls': get_opened_cpls(), 'DEBUG': settings.DEBUG, } return render(request, 'launch/cpl.html', ctx)
def landing_page(request): user = request.user launch_status = get_launch_status() if launch_status == LAUNCH_STATUS_OPEN_CART and not request.GET.get('debug'): return redirect(reverse('checkout:bootcamp_lp')) if user.is_authenticated: form = LeadForm({'email': user.email}) user_domain.visit_launch_landing_page(user, request.GET.get('utm_source', 'unknown')) else: form = LeadForm() return render(request, 'launch/landing_page.html', {'form': form})
def test_should_return_launch_status_closed_on_day_after_closed(mocker): fake_today = timezone.make_aware(datetime(2020, 8, 19, 17)) mocker.patch('pythonpro.launch.facade.timezone.now', return_value=fake_today) assert get_launch_status() == LAUNCH_STATUS_CLOSED
def test_should_return_launch_status_open_cart_on_last_day(mocker): fake_today = timezone.make_aware(datetime(2020, 8, 19, 16, 59, 59)) mocker.patch('pythonpro.launch.facade.timezone.now', return_value=fake_today) assert get_launch_status() == LAUNCH_STATUS_OPEN_CART
def test_should_return_launch_status_cpl4_on_thu_early(mocker): fake_today = timezone.make_aware(datetime(2020, 8, 13)) mocker.patch('pythonpro.launch.facade.timezone.now', return_value=fake_today) assert get_launch_status() == LAUNCH_STATUS_CPL3
def test_should_return_launch_status_ppl_before_monday(mocker): fake_today = timezone.make_aware(datetime(2020, 8, 9, 23, 59, 59)) mocker.patch('pythonpro.launch.facade.timezone.now', return_value=fake_today) assert get_launch_status() == LAUNCH_STATUS_PPL