def test_parsing(self):
     """pathrender: pattern parsing"""
     pattern = Pattern(u"{$Disc.}$Track - $Artist - $Title{ [$Year]}")
     expected = [
         _pr._OptionalBlock(
             [_pr._Replacement(u"$Disc"),
              _pr._LiteralText(u".")]),
         _pr._Replacement(u"$Track"),
         _pr._LiteralText(u" - "),
         _pr._Replacement(u"$Artist"),
         _pr._LiteralText(u" - "),
         _pr._Replacement(u"$Title"),
         _pr._OptionalBlock([
             _pr._LiteralText(u" ["),
             _pr._Replacement(u"$Year"),
             _pr._LiteralText(u"]")
         ])
     ]
     self.assertEqual(expected, pattern._pattern)
     self.assertItemsEqual([], pattern.warnings)
 def test_parsing(self):
     """pathrender: pattern parsing"""
     pattern = Pattern(u"{$Disc.}$Track - $Artist - $Title{ [$Year]}")
     expected = [
         _pr._OptionalBlock([
             _pr._Replacement(u"$Disc"),
             _pr._LiteralText(u".")
         ]),
         _pr._Replacement(u"$Track"),
         _pr._LiteralText(u" - "),
         _pr._Replacement(u"$Artist"),
         _pr._LiteralText(u" - "),
         _pr._Replacement(u"$Title"),
         _pr._OptionalBlock([
             _pr._LiteralText(u" ["),
             _pr._Replacement(u"$Year"),
             _pr._LiteralText(u"]")
         ])
     ]
     self.assertEqual(expected, pattern._pattern)
     self.assertItemsEqual([], pattern.warnings)
 def test_optional(self):
     """pathrender: _OptionalBlock element processing"""
     o = _pr._OptionalBlock(
         [_pr._Replacement(u"$Title"),
          _pr._LiteralText(u".foobar")])
     subst = {'$Title': 'foo', '$Track': 'bar'}
     res = o.render(subst)
     self.assertEqual(res, u'foo.foobar', 'check non-empty replacement')
     subst = {'$Title': ''}
     res = o.render(subst)
     self.assertEqual(res, '', 'check empty replacement')
     subst = {'$Title': None}
     res = o.render(subst)
     self.assertEqual(res, '', 'check render() works with None')
 def test_optional(self):
     """pathrender: _OptionalBlock element processing"""
     o = _pr._OptionalBlock([
         _pr._Replacement(u"$Title"),
         _pr._LiteralText(u".foobar")
     ])
     subst = {'$Title': 'foo', '$Track': 'bar'}
     res = o.render(subst)
     self.assertEqual(res, u'foo.foobar', 'check non-empty replacement')
     subst = {'$Title': ''}
     res = o.render(subst)
     self.assertEqual(res, '', 'check empty replacement')
     subst = {'$Title': None}
     res = o.render(subst)
     self.assertEqual(res, '', 'check render() works with None')
 def test_literal(self):
     """pathrender: _Literal text rendering"""
     l = _pr._LiteralText(u"foo")
     subst = {'$foo': 'bar'}
     res = l.render(subst)
     self.assertEqual(res, 'foo')
 def test_literal(self):
     """pathrender: _Literal text rendering"""
     l = _pr._LiteralText(u"foo")
     subst = {'$foo': 'bar'}
     res = l.render(subst)
     self.assertEqual(res, 'foo')