Esempio n. 1
0
 def test_new_member (self):
     # @todo use apps.support.add_new_member
     filename = rootdir ('db', 'newmembers')
     open (filename, 'w').close()    # clear file
     born = datetime.date (1977, 01, 20)
     data = {
         u'choice':   u'1',
         u'name':     u'Arne And',
         #u'born':     u'1977-01-20',
         #u'born':     u'20/01/77',
         # @todo test all date formats?
         u'born':     unicode (born.strftime('%d/%m/%y')),
         u'address1': u'Portveien 2',
         u'address2': u'',
         u'city':     u'Oslo',
         u'zipcode':  u'1234',
         u'email':    u'*****@*****.**',
         u'phone':    u'',
         u'enrolled': unicode (datetime.date.today().strftime('%Y-%m-%d')),
         u'comment':  u'line one\nline two\nthe end',
         u'extra':    [u'1', u'3', u'5'],
     }
     res = self.client.post (reverse('enroll'), data)
     self.assertEqual (res.status_code, 200)
     # @note will get 200 even if form not valid. must check for validation error message
     obj = json.load (open(filename))
     data.update (born = unicode (born.strftime('%Y-%m-%d')))    # date is read back in iso format
     self.assertEqual (data, obj)
Esempio n. 2
0
import json
from website.settings import rootdir

# File object to write new members to. Use add_new_member() instead
# of directly writing to this file.
try:
    _new_member_fp = open (rootdir ('db', 'newmembers'), 'a')
except IOError, ex:
    import logging
    logging.critical ('Can not open newmembers file: ' + ex.strerror)
    #logging.critical ('Can not open newmembers file: ' + str(ex))
    # @todo pass exception


# @todo move to core.members?
# @todo filter/remove empty elements?
def add_new_member (data):
    '''Add a new member. Data is a dict'''
    data['born'] = data['born'].strftime ('%F') # json don't handle datetime objects, so convert to string
    #data['born'] = str (data['born']) # does the same as above (i think)
    fp = _new_member_fp
    json.dump (data, fp)
    fp.write ('\n')
    fp.flush()