This repository was archived by the owner on Jun 5, 2023. It is now read-only.
File tree 2 files changed +20
-1
lines changed
2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -90,6 +90,15 @@ def safe_str_to_class(s):
90
90
klass = lst [- 1 ]
91
91
mod_list = lst [:- 1 ]
92
92
module = "." .join (mod_list )
93
+
94
+ # ruby compatibility kludge: resque sends just a class name and
95
+ # not a module name so if I use resque to queue a ruby class
96
+ # called "Worker" then pyres will throw a "ValueError: Empty
97
+ # module name" exception. To avoid that, if there's no module in
98
+ # the json then we'll use the classname as a module name.
99
+ if not module :
100
+ module = klass
101
+
93
102
mod = my_import (module )
94
103
if hasattr (mod , klass ):
95
104
return getattr (mod , klass )
Original file line number Diff line number Diff line change 2
2
import os
3
3
from pyres import ResQ , str_to_class
4
4
5
+ class tests (object ):
6
+ queue = 'basic'
7
+
8
+ @staticmethod
9
+ def perform (name ):
10
+ s = "name:%s" % name
11
+ return s
12
+
5
13
class Basic (object ):
6
14
queue = 'basic'
7
15
@@ -111,7 +119,9 @@ def test_safe_str_to_class(self):
111
119
assert safe_str_to_class ('tests.Basic' ) == Basic
112
120
self .assertRaises (ImportError , safe_str_to_class , 'test.Mine' )
113
121
self .assertRaises (ImportError , safe_str_to_class , 'tests.World' )
114
-
122
+ # test that we'll use the class name as a module name if no
123
+ # module name is provided (for Ruby compatibility)
124
+ assert safe_str_to_class ('tests' ) == tests
115
125
116
126
class PyResTests (unittest .TestCase ):
117
127
def setUp (self ):
You can’t perform that action at this time.
0 commit comments