~fluendo-elisa/moovida/elisa-pancake

« back to all changes in this revision

Viewing changes to elisa-plugins/elisa/plugins/base/tests/test_models.py

  • Committer: pancake
  • Date: 2009-03-27 12:16:38 UTC
  • mfrom: (1115.2.37 elisa)
  • Revision ID: pancake@flubox-20090327121638-2da0c1a0zu3byufd
* Merge against the head

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- coding: utf-8 -*-
2
2
# Elisa - Home multimedia server
3
 
# Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com).
 
3
# Copyright (C) 2008-2009 Fluendo Embedded S.L. (www.fluendo.com).
4
4
# All rights reserved.
5
5
#
6
6
# This file is available under one of two license agreements.
14
14
# See "LICENSE.Elisa" in the root directory of this distribution package
15
15
# for details on that license.
16
16
#
17
 
# Author: Benjamin Kampmann <benjamin@fluendo.com>
 
17
# Authors: Benjamin Kampmann <benjamin@fluendo.com>
 
18
#          Olivier Tilloy <olivier@fluendo.com>
18
19
 
19
20
"""
20
21
A simple import and initialize test for the base models.
27
28
 
28
29
from twisted.trial.unittest import TestCase
29
30
 
30
 
from pkg_resources import Distribution
31
 
from distutils.version import LooseVersion
32
 
 
33
31
 
34
32
class ModelMixin(object):
35
33
 
72
70
 
73
71
    def test_from_dict(self):
74
72
        dictionary = {}
75
 
        dictionary['name'] = 'elisa-plugin-test'
76
 
        dictionary['tags'] = ['test', 'plugin', 'elisa']
77
 
        dictionary['uri'] = 'http://elisa-plugins.com/elisa-plugin-test'
78
 
        dictionary['description'] = 'A test plugin that does nothing.'
79
 
        dictionary['version'] = '0.1.4'
80
 
        dictionary['platforms'] = 'linux, win32'
81
73
        dictionary['icons'] = str([{'uri': 'icon1'}, {'uri': 'icon2'}])
82
74
        model = plugin.PluginModel.from_dict(dictionary)
83
 
        self.failUnlessEqual(model.name, 'elisa-plugin-test')
84
 
        self.failUnlessEqual(model.tags, ['test', 'plugin', 'elisa'])
85
 
        self.failUnlessEqual(model.uri,
86
 
                             'http://elisa-plugins.com/elisa-plugin-test')
87
 
        self.failUnlessEqual(model.description,
88
 
                             'A test plugin that does nothing.')
89
 
        self.failUnlessEqual(model.version, LooseVersion('0.1.4'))
90
 
        self.failUnlessEqual(model.platforms, ['linux', 'win32'])
91
75
        self.failUnlessEqual(len(model.icons), 2)
92
76
        self.failUnless(isinstance(model.icons[0], image.ImageModel))
93
77
        self.failUnlessEqual(len(model.icons[0].references), 1)
97
81
        self.failUnlessEqual(model.icons[1].references[0], MediaUri('icon2'))
98
82
 
99
83
    def test_from_distribution(self):
100
 
        distribution = Distribution(project_name='elisa-plugin-test',
101
 
                                    version='0.1.4')
102
 
        distribution.author = 'Elisa Developers'
103
 
        distribution.license = 'GPLv3'
104
 
        distribution.summary = 'A test plugin'
105
 
        distribution.description = 'A test plugin that does nothing.'
106
 
        model = plugin.PluginModel.from_distribution(distribution)
107
 
        self.failUnlessEqual(model.name, 'elisa-plugin-test')
108
 
        self.failUnlessEqual(model.version, LooseVersion('0.1.4'))
109
 
        self.failUnlessEqual(model.author_name, 'Elisa Developers')
110
 
        self.failUnlessEqual(model.license, 'GPLv3')
111
 
        self.failUnlessEqual(model.title, 'A test plugin')
112
 
        self.failUnlessEqual(model.description,
113
 
                             'A test plugin that does nothing.')
114
 
 
115
 
    test_from_distribution.todo = "Update test to recent changes"
116
 
 
 
84
        raise NotImplementedError()
 
85
 
 
86
    test_from_distribution.todo = 'Implement me!'