def _get_commit_dir_template(self): AUTHOR_CONTEXT_VALUES = {CommitContextNames.PERSON_TYPE:CommitPersonTypes.AUTHOR} COMMITTER_CONTEXT_VALUES = {CommitContextNames.PERSON_TYPE:CommitPersonTypes.COMMITTER} return template(Directory, items=[ template(CommitMessageFile, name='message'), template(CommitPersonNameFile , name='author-name' , context_values=AUTHOR_CONTEXT_VALUES), template(CommitPersonEmailFile, name='author-email', context_values=AUTHOR_CONTEXT_VALUES), template(CommitPersonDateFile , name='author-date' , context_values=AUTHOR_CONTEXT_VALUES), template(CommitPersonNameFile , name='committer-name' , context_values=COMMITTER_CONTEXT_VALUES), template(CommitPersonEmailFile, name='committer-email', context_values=COMMITTER_CONTEXT_VALUES), template(CommitPersonDateFile , name='committer-date' , context_values=COMMITTER_CONTEXT_VALUES), template(CommitTreeSymLink, name='tree'), template(CommitParentsProvider, prefix='parent'), ])
def test_create_instance(self): class Class(object): pass tmpl = template(Class) instance = tmpl.create_instance() self.assertIsInstance(instance, Class)
def test_recurse_on_list_arguments(self): class BaseClass(object): def __init__(self, **kwargs): for name, value in kwargs.iteritems(): setattr(self, name, value) class Class1(BaseClass): pass class Class2(BaseClass): pass NAME = 'name' AGE = 99 OTHER = object() tmpl = template(Class1, name=NAME, list_arg=[ AGE, template(Class2, other=OTHER) ]) instance = tmpl.create_instance() self.assertIs(instance.name, NAME) self.assertIsInstance(instance.list_arg, list) self.assertIs(instance.list_arg[0], AGE) self.assertIsInstance(instance.list_arg[1], Class2) self.assertIs(instance.list_arg[1].other, OTHER)
def test_forward_constructor_arguments(self): class Class(object): def __init__(self, name, age): self.name = name self.age = age NAME = 'name' AGE = 56 tmpl = template(Class, name=NAME, age=AGE) instance = tmpl.create_instance() self.assertIs(instance.name, NAME) self.assertIs(instance.age, AGE)
def test_create_with_additional_arguments(self): class Class(object): def __init__(self, **kwargs): self.kwargs = kwargs NAME = 'name' AGE = 56 STATUS = True tmpl = template(Class, name=NAME, age=12) instance = tmpl.create_instance(age=AGE, status=STATUS) expected_kwargs = { 'name' : NAME, 'age' : AGE, 'status' : STATUS, } self.assertDictEqual(instance.kwargs, expected_kwargs)
def _get_tree_dir_template(self): return template(Directory, items=[template(TreeDirItemsProvider)])
def _get_commit_dir_template(self): return template( Directory, items=[ template(CommitMessageFile, name="message"), template( Directory, name="author", context_values={CommitContextNames.PERSON_TYPE: CommitPersonTypes.AUTHOR}, items=[ template(CommitPersonNameFile, name="name"), template(CommitPersonEmailFile, name="email"), template(CommitPersonDateFile, name="date"), ], ), template( Directory, name="committer", context_values={CommitContextNames.PERSON_TYPE: CommitPersonTypes.COMMITTER}, items=[ template(CommitPersonNameFile, name="name"), template(CommitPersonEmailFile, name="email"), template(CommitPersonDateFile, name="date"), ], ), template(CommitTreeSymLink, name="tree"), template(Directory, name="parents", items=[template(CommitParentsProvider)]), ], )