def test_get_no_events(self): ''' no events are available to process ''' BrownPaperEvents.objects.all().delete() nt.assert_equal(process_bpt_order_list(), 0)
def test_get_transaction_purchase_email(self, m_urlopen): ''' get a transaction for a real user via the purchase_email ''' BrownPaperEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() event = BrownPaperEventsFactory() ticket = TicketItemFactory( bpt_event=event, ticket_id='%s-%s' % (event.bpt_event_id, '3255985')) BrownPaperSettingsFactory() profile = ProfileFactory(purchase_email='*****@*****.**') a = Mock() order_filename = open("tests/ticketing/orderlist.xml", 'r') a.read.side_effect = [File(order_filename).read()] m_urlopen.return_value = a nt.assert_equal(process_bpt_order_list(), 1) transaction = get_object_or_404( Transaction, reference='A12345678') nt.assert_equal(str(transaction.order_date), "2014-08-16 00:26:56+00:00") nt.assert_equal(transaction.shipping_method, 'Will Call') nt.assert_equal(transaction.order_notes, 'None') nt.assert_equal(transaction.payment_source, 'Brown Paper Tickets') nt.assert_equal(transaction.purchaser.email, '*****@*****.**') nt.assert_equal(transaction.purchaser.phone, '111-222-3333') nt.assert_equal(transaction.purchaser.matched_to_user, profile.user_object) nt.assert_equal(transaction.purchaser.first_name, 'John') nt.assert_equal(transaction.purchaser.last_name, 'Smith') profile.user_object.delete()
def test_get_transaction_purchase_email(self, m_urlopen): ''' get a transaction for a real user via the purchase_email ''' BrownPaperEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() event = BrownPaperEventsFactory() ticket = TicketItemFactory(bpt_event=event, ticket_id='%s-%s' % (event.bpt_event_id, '3255985')) BrownPaperSettingsFactory() profile = ProfileFactory(purchase_email='*****@*****.**') a = Mock() order_filename = open("tests/ticketing/orderlist.xml", 'r') a.read.side_effect = [File(order_filename).read()] m_urlopen.return_value = a nt.assert_equal(process_bpt_order_list(), 1) transaction = get_object_or_404(Transaction, reference='A12345678') nt.assert_equal(str(transaction.order_date), "2014-08-16 00:26:56+00:00") nt.assert_equal(transaction.shipping_method, 'Will Call') nt.assert_equal(transaction.order_notes, 'None') nt.assert_equal(transaction.payment_source, 'Brown Paper Tickets') nt.assert_equal(transaction.purchaser.email, '*****@*****.**') nt.assert_equal(transaction.purchaser.phone, '111-222-3333') nt.assert_equal(transaction.purchaser.matched_to_user, profile.user_object) nt.assert_equal(transaction.purchaser.first_name, 'John') nt.assert_equal(transaction.purchaser.last_name, 'Smith') profile.user_object.delete()
def test_get_no_events(self): ''' no events are available to process ''' BrownPaperEvents.objects.all().delete() nt.assert_equal(process_bpt_order_list(), 0)
def test_get_transaction_limbo(self, m_urlopen): ''' get a transaction for the limbo user ''' TicketingEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() event = TicketingEventsFactory() ticket = TicketItemFactory(ticketing_event=event, ticket_id='%s-%s' % (event.event_id, '3255985')) BrownPaperSettingsFactory() limbo, created = User.objects.get_or_create(username='******') a = Mock() order_filename = open("tests/ticketing/orderlist.xml", 'r') a.read.side_effect = [File(order_filename).read()] m_urlopen.return_value = a self.assertEqual(process_bpt_order_list(), 1) transaction = get_object_or_404(Transaction, reference='A12345678') self.assertEqual(str(transaction.order_date), "2014-08-15 19:26:56") self.assertEqual(transaction.shipping_method, 'Will Call') self.assertEqual(transaction.order_notes, 'None') self.assertEqual(transaction.payment_source, 'Brown Paper Tickets') self.assertEqual(transaction.purchaser.email, '*****@*****.**') self.assertEqual(transaction.purchaser.phone, '111-222-3333') self.assertEqual(transaction.purchaser.matched_to_user, limbo) self.assertEqual(transaction.purchaser.first_name, 'John') self.assertEqual(transaction.purchaser.last_name, 'Smith')
def test_get_no_events(self): ''' no events are available to process ''' TicketingEvents.objects.all().delete() self.assertEqual(process_bpt_order_list(), 0)
# command line, or from # the linux cron server (or windows scheduled task server, or whatever). # # Note: the output from this function will create a bunch of # "received native datetime" warnings. I wasn't able to figure # out how to suppress these. Data imports just fine regardless. # # edited by mdb 8/18/2014 # # Needed on webfactional installation in place of current lines 19 & 20 # sys.path.append('/home/gbeadmin/webapps/gbetest/expo') # os.environ['DJANGO_SETTINGS_MODULE'] = 'expo.settings' import sys import os import django sys.path.append('./expo') os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' django.setup() from expo.gbe_logging import logger from django.conf import settings from ticketing.brown_paper import process_bpt_order_list from ticketing.views import import_ticket_items logger.info('Executing Cron Job Script....') tickets = import_ticket_items() logger.info('%s tickets added to the system.' % tickets) count = process_bpt_order_list() logger.info('%s transactions added to the system.' % count)
def handle(self, *args, **options): logger.info('Executing SyncBPTTrans Script....') self.stdout.write('Executing SyncBPTTrans Script....') count = process_bpt_order_list() logger.info('%s transactions imported.' % count) self.stdout.write('%s transactions imported.' % count)
def transactions(request): ''' Represents the view for working with ticket items. This will have a list of current ticket items, and the ability to synch them. ''' validate_perms(request, ('Ticketing - Transactions', )) conference_choice = request.GET.get('conference', None) if conference_choice: conference = get_conference_by_slug(conference_choice) else: conference = get_current_conference() view_format = request.GET.get('format', 'ticket') changed_id = int(request.GET.get('changed_id', -1)) intro = UserMessage.objects.get_or_create(view="ViewTransactions", code="INTRO_MESSAGE", defaults={ 'summary': "Introduction Message", 'description': intro_transaction_message }) count = -1 error = '' if ('Sync' in request.POST): msgs = process_eb_purchases() for msg, is_success in msgs: if is_success: messages.success(request, msg) else: messages.error(request, msg) count = process_bpt_order_list() success_msg = UserMessage.objects.get_or_create( view="ViewTransactions", code="IMPORT_MESSAGE", defaults={ 'summary': "Import BPT Transactions Message", 'description': import_transaction_message }) messages.success( request, "%s Transactions imported: %s - BPT" % (success_msg[0].description, count)) user_editor = validate_perms(request, ('Registrar', ), require=False) context = { 'conference_slugs': conference_slugs(), 'conference': conference, 'changed_id': changed_id, 'error': error, 'intro': intro[0].description, 'can_edit': user_editor, 'view_format': view_format } if view_format == "ticket": context['transactions'] = Transaction.objects.filter( ticket_item__ticketing_event__conference=conference).order_by( 'ticket_item__ticketing_event', 'ticket_item__title', 'purchaser') else: context['users'] = User.objects.filter( purchaser__transaction__ticket_item__ticketing_event__conference= conference).distinct().order_by('email') return render(request, r'ticketing/transactions.tmpl', context)