Skip to content

Commit cff4793

Browse files
committed
More testing stuff.
1 parent 1decbc5 commit cff4793

File tree

5 files changed

+55
-24
lines changed

5 files changed

+55
-24
lines changed

app/fixtures/test_fixture.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,25 @@
2525
"user": 2,
2626
"snapshot_width": 1
2727
}
28-
},
28+
},
29+
{
30+
"pk": 2,
31+
"model": "app.posterboard",
32+
"fields": {
33+
"display_position": null,
34+
"title_path": "userhomepage1",
35+
"title": "userhomepage1",
36+
"created_at": "2011-04-04 17:33:54",
37+
"updated_at": "2011-04-04 17:33:54",
38+
"private": false,
39+
"snapshot_height": 1,
40+
"display_set": null,
41+
"snapshot": "",
42+
"user": 2,
43+
"snapshot_width": 1,
44+
"is_user_home_page": true
45+
}
46+
},
2947
{
3048
"pk": 22,
3149
"model": "auth.permission",

app/models.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,12 @@ class Posterboard(CommonInfo):
9595
blank=True, null=True)
9696

9797
def clean(self):
98-
if self.title == "userhomepage":
99-
self.title += " "+str(Posterboard.objects.filter(user=self.user).count()+1)
98+
try:
99+
if self.title == "userhomepage" and self.user is not None:
100+
self.title += " "+str(Posterboard.objects.filter(user=self.user).count()+1)
101+
except:
102+
# Probably just form validation here.
103+
pass
100104
self.title_path = title_to_path(self.title)
101105
if len(self.title_path) < 5:
102106
raise ValidationError('Please enter a longer posterboard title',

app/tests.py

+21-19
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ def setUp(self):
5555
self.title = 'testposterboardpost'
5656

5757
def create_posterboard_general(self, title='', private=False, is_user_home_page=False):
58-
if is_user_home_page:
59-
title = "userhomepage"
6058
data = {
6159
'title': title,
6260
'private': private,
@@ -121,6 +119,7 @@ def test_create_delete_one_user_home_page(self):
121119
pb_path = container['posterboard-path']
122120

123121
self.assertEqual(Posterboard.objects.get(pk=pb_id).is_user_home_page, True)
122+
self.assertRegexpMatches(pb_path, r'^userhomepage-\d+$', 'User home page title malformed: ' + pb_path)
124123
self.assertEqual(self.delete_posterboard(pb_path).status_code, 200)
125124
self.assertEqual(len(Posterboard.objects.filter(pk=pb_id)), 0)
126125

@@ -211,9 +210,13 @@ class ElementHandlerTest (TestCase):
211210
fixtures = ['test_fixture.json']
212211

213212
def setUp(self):
213+
settings.VIDEO_CONVERT_SYNC = True
214+
214215
[self.c, self.user] = login_user('test','test')
215216
self.pb = Posterboard.objects.filter(user__username=self.user.username)[0]
217+
self.uhp = Posterboard.objects.filter(user__username=self.user.username, is_user_home_page=True)[0]
216218
self.pbpath = '/people/'+self.user.username+'/posterboards/'+self.pb.title_path+'/elements/'
219+
self.uhppath = '/people'+self.user.username+'/posterboards/'+self.uhp.title_path+'/elements/'
217220

218221
# Set paths to files.
219222
self.imagepath = os.path.join(settings.TEST_MEDIA_ROOT,'mountains.jpg')
@@ -222,13 +225,16 @@ def setUp(self):
222225
self.audiopath = os.path.join(settings.TEST_MEDIA_ROOT,'shimmer.wav')
223226

224227

225-
def create_image(self):
228+
def create_image(self, homepage=False):
226229
img = open(self.imagepath,'rb')
227230
data = {
228231
'element-type':'image',
229232
'image':img
230233
}
231-
response = self.c.post(self.pbpath[:-1]+'.json',data)
234+
if(homepage):
235+
response = self.c.post(self.uhppath[:-1]+'.json',data)
236+
else:
237+
response = self.c.post(self.pbpath[:-1]+'.json',data)
232238
img.close()
233239
return response
234240

@@ -250,13 +256,6 @@ def create_video_to_convert(self):
250256
}
251257
response = self.c.post(self.pbpath[:-1]+'.json',data)
252258
video.close()
253-
# Give video time to convert
254-
sleeprange = range(0,60)
255-
sleeprange.reverse()
256-
for i in sleeprange:
257-
if i % 10 == 0:
258-
print str(i) + "..."
259-
time.sleep(1)
260259
return response
261260

262261
def create_audio(self):
@@ -383,11 +382,14 @@ def update_state_wrapper(self, state_id, property):
383382
val = eval('state.'+key)
384383
self.assertEqual(property[key],val)
385384

386-
def delete_element(self, id):
385+
def delete_element(self, id, homepage=False):
387386
data = {
388387
'_action':'delete'
389388
}
390-
response = self.c.get(self.pbpath+str(id)+'/.json',data)
389+
if(homepage):
390+
response = self.c.get(self.uhppath+str(id)+'/.json',data)
391+
else:
392+
response = self.c.get(self.pbpath+str(id)+'/.json',data)
391393
return response
392394

393395
def delete_state(self, response):
@@ -403,7 +405,7 @@ def test_create_delete_one_image(self):
403405
self.assertEqual(self.delete_element(element_id).status_code, 200)
404406
self.assertEqual(len(Element.objects.filter(pk=element_id)), 0)
405407

406-
def est_create_delete_one_video(self):
408+
def test_create_delete_one_video(self):
407409
response = self.create_video()
408410
container = eval(response._container[0])
409411
self.assertEqual(response.status_code, 200)
@@ -412,7 +414,7 @@ def est_create_delete_one_video(self):
412414
self.assertEqual(self.delete_element(element_id).status_code, 200)
413415
self.assertEqual(len(Element.objects.filter(pk=element_id)), 0)
414416

415-
def est_create_delete_one_video_to_convert(self):
417+
def test_create_delete_one_video_to_convert(self):
416418
response = self.create_video_to_convert()
417419
container = eval(response._container[0])
418420
self.assertEqual(response.status_code, 200)
@@ -421,8 +423,8 @@ def est_create_delete_one_video_to_convert(self):
421423
self.assertEqual(self.delete_element(element_id).status_code, 200)
422424
self.assertEqual(len(Element.objects.filter(pk=element_id)), 0)
423425

424-
def est_create_delete_one_audio(self):
425-
response = self.create_video()
426+
def test_create_delete_one_audio(self):
427+
response = self.create_audio()
426428
container = eval(response._container[0])
427429
self.assertEqual(response.status_code, 200)
428430
element_id = container['element-id']
@@ -453,7 +455,7 @@ def test_update_one_image(self):
453455
self.assertEqual(len(Element.objects.filter(pk=element_id)), 0)
454456
self.assertEqual(len(ImageState.objects.filter(pk=state_id)), 0)
455457

456-
def est_update_one_video(self):
458+
def test_update_one_video(self):
457459
response = self.create_video()
458460
container = eval(response._container[0])
459461
self.assertEqual(response.status_code, 200)
@@ -467,7 +469,7 @@ def est_update_one_video(self):
467469
self.assertEqual(len(Element.objects.filter(pk=element_id)), 0)
468470
self.assertEqual(len(VideoState.objects.filter(pk=state_id)), 0)
469471

470-
def est_update_one_audio(self):
472+
def test_update_one_audio(self):
471473
response = self.create_audio()
472474
container = eval(response._container[0])
473475
self.assertEqual(response.status_code, 200)

app/views.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -362,14 +362,16 @@ def posterboards_handler(request, blogger=None, posterboard=None,
362362

363363
# create, make sure to check user.id as only logged in user can create new posterboard
364364
elif user.id and request.method == 'POST':
365-
pbForm = PosterboardForm(request.POST)
365+
pbForm = PosterboardForm(request.POST)
366+
if pbForm.data['title'] is None or pbForm.data['title'] == '':
367+
pbForm.data['title'] = 'userhomepage'
366368
if pbForm.is_valid():
367369
# commit=False creates and returns the model object but doesn't save it.
368370
# Remove it if unnecessary.
369371
posterboard = pbForm.save(commit=False)
370372
try:
373+
posterboard.user = user
371374
posterboard.full_clean()
372-
user.posterboard_set.add(posterboard)
373375
posterboard.save()
374376
except ValidationError, e:
375377
return ErrorResponse(str(e), format)
@@ -517,6 +519,10 @@ def elements_handler(request, blogger=None, posterboard=None, element=None,
517519
childState.save()
518520

519521
if(element.type == "video"):
522+
if settings.VIDEO_CONVERT_SYNC:
523+
from videologue.management.commands.vlprocess import process_files
524+
process_files()
525+
else:
520526
os.system('python '+ settings.PROJECT_ROOT + '/manage.py vlprocess& 2>&1 1>>'+ settings.LOG_FILENAME)
521527

522528
data['element-id'] = element.id

settings.py

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
VIDEOLOGUE_ENCODE_MP4 = False
6363
VIDEOLOGUE_VIDEO_SIZE = '720x480'
6464
VIDEOLOGUE_IMAGE_SIZE = '720x480'
65+
VIDEO_CONVERT_SYNC = False # Don't set this to True, unless you are testing. This is handled in test.
6566
PHOTOLOGUE_DIR = 'videos'
6667
VIDEOLOGUE_DIR = 'videos'
6768
CONVERSION_TIME = 55 # in seconds

0 commit comments

Comments
 (0)