def load(self, filename): self.filename = filename with open(self.filename) as f: parts = Post.json_sep.split(f.read(), maxsplit=2) header = json.loads(parts[1]) self.author = header['author'] self.title = header['title'] if 'permalink' in header: self.permalink = header['permalink'] guid = header['guid'] self.guid = guid if guid.startswith('tag:') else 'urn:uuid:{}'.format(guid) if header['categories']: self.categories = [category.strip() for category in header['categories'].split(',')] self.date = timezone(self.blog.config['blog']['timezone']).\ localize(datetime.strptime(header['date'], self.blog.config['blog']['dateformat'])) self.updated = self.date if 'updated' in header: self.updated = timezone(self.blog.config['blog']['timezone']).\ localize( datetime.strptime(header['updated'], self.blog.config['blog']['dateformat'])) if not self.permalink: self.permalink = '{}/{}/{}'.format(self.blog.config['blog']['url'], self.date.strftime('%Y/%m/%d'), slugify(self.title)) self.slug = header['slug'] if 'slug' in header else slugify(self.title) self._content = parts[2]
def load(self, filename): self.filename = filename with open(self.filename) as f: parts = Post.json_sep.split(f.read(), maxsplit=2) header = json.loads(parts[1]) self.author = header['author'] self.title = header['title'] if 'permalink' in header: self.permalink = header['permalink'] guid = header['guid'] self.guid = guid if guid.startswith('tag:') else 'urn:uuid:{}'.format( guid) if header['categories']: self.categories = [ category.strip() for category in header['categories'].split(',') ] self.date = timezone(self.blog.config['blog']['timezone']).\ localize(datetime.strptime(header['date'], self.blog.config['blog']['dateformat'])) self.updated = self.date if 'updated' in header: self.updated = timezone(self.blog.config['blog']['timezone']).\ localize( datetime.strptime(header['updated'], self.blog.config['blog']['dateformat'])) if not self.permalink: self.permalink = '{}/{}/{}'.format(self.blog.config['blog']['url'], self.date.strftime('%Y/%m/%d'), slugify(self.title)) self.slug = header['slug'] if 'slug' in header else slugify(self.title) self._content = parts[2]
def new(self, title, draft=False): """ Create a new Post… """ self.title = title self.filename = newfile(slugify(self.title), draft) self.guid = str(uuidgen()) self.author = self.blog.config['blog']['defaultauthor'] self.categories = self.blog.config['blog']['categories'] self.updated = self.date self.permalink = '{}/{}/{}'.format(self.blog.config['blog']['url'], self.date.strftime('%Y/%m/%d'), slugify(self.title)) self.save() return self.filename
def test_slug_exclude(self): self.assertEqual(slugify(":"), "")
def test_whitespace(self): self.assertEqual(slugify(" "), "-")
def test_umlaute(self): self.assertEqual(slugify("ä"), "ae") self.assertEqual(slugify("ü"), "ue") self.assertEqual(slugify("ö"), "oe") self.assertEqual(slugify("ß"), "ss")
def test_simpleslug(self): self.assertEqual(slugify("Test"), "test")