Commits

Jan Borsodi committed 9248dea Merge

Merged in fixes from release-0.x.

Comments (0)

Files changed (3)

hob/templates/proto/package.mako

 %   if package.name:
 package ${package.name};
 
-%   endif
+%   endif \
 %   if package.options:
 ${g.blockOptions(package, package.options)}
 %   endif
 % endif \
-
 % for item in package.items:
 %   if not export or type(item).__name__.lower() in export:
 ${g.item(item)}

tests/test_command_proto.py

 import difflib
+import re
+from os.path import dirname, join
 from hob.proto import PackageManager
 from hob.template import TextGenerator
 
             print line,
     assert out == expected
 
+def fixpath(fname):
+    return join(dirname(__file__), fname)
+
 def processProto(fname, syntax="scope", export=["package", "service", "message", "enum"]):
     manager = PackageManager()
     package = manager.loadFile(fname)
     gen = TextGenerator(syntax=syntax)
     text = gen.package(package, export=export)
+    text = re.sub(r"\r\n", "\n", text)
     return text
 
 def test_basic_messages():
-    text = processProto("tests/proto/basic.proto")
-    expected = open("tests/syntax_scope/basic.proto").read()
+    text = processProto(fixpath("proto/basic.proto"))
+    expected = open(fixpath("syntax_scope/basic.proto")).read()
     compareOutput(text, expected)
 
 def test_composed_messages():
-    text = processProto("tests/proto/composed.proto")
-    expected = open("tests/syntax_scope/composed.proto").read()
+    text = processProto(fixpath("proto/composed.proto"))
+    expected = open(fixpath("syntax_scope/composed.proto")).read()
     compareOutput(text, expected)
 
 def test_enums():
-    text = processProto("tests/proto/enums.proto")
-    expected = open("tests/syntax_scope/enums.proto").read()
+    text = processProto(fixpath("proto/enums.proto"))
+    expected = open(fixpath("syntax_scope/enums.proto")).read()
     compareOutput(text, expected)
 
 def test_options():
-    text = processProto("tests/proto/options.proto")
-    expected = open("tests/syntax_scope/options.proto").read()
+    text = processProto(fixpath("proto/options.proto"))
+    expected = open(fixpath("syntax_scope/options.proto")).read()
     compareOutput(text, expected)

tests/test_parser.py

 import os
+from os.path import dirname, join
 from hob.parser import Lexer, create_lexer_rules, PackageBuilder, Loader, ParseError, BuildError
 from hob.proto import Package, Request, Event, Message, Proto
 
+def fixpath(fname):
+    return join(dirname(__file__), fname)
+
 class FakeLoadError(Exception):
     pass
 
 
 def load(filename):
     l = Lexer(create_lexer_rules())
-    loader = PathLoader(l, "tests/proto")
+    loader = PathLoader(l, fixpath("proto"))
     pkg = Package(filename)
     builder = PackageBuilder(pkg, loader)
     loader.load(filename, builder)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.