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)
Пример #5
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')
Пример #6
0
    def test_get_no_events(self):
        '''
           no events are available to process
        '''
        TicketingEvents.objects.all().delete()

        self.assertEqual(process_bpt_order_list(), 0)
Пример #7
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)
Пример #8
0
 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)