summary refs log blame commit diff stats
path: root/test/tc_relative_symlink.py
blob: a202513d699adac86edcd83ef4d4bd1cc575068c (plain) (tree)














































                                                                                          
# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import os.path
import sys
rangerpath = os.path.join(os.path.dirname(__file__), '..')
if sys.path[1] != rangerpath:
	sys.path[1:1] = [rangerpath]

import unittest
from ranger.ext.relative_symlink import *
rel = get_relative_source_file

class Test(unittest.TestCase):
	def test_foo(self):
		self.assertEqual('../foo', rel('/foo', '/x/bar'))
		self.assertEqual('../../foo', rel('/foo', '/x/y/bar'))
		self.assertEqual('../../a/b/foo', rel('/a/b/foo', '/x/y/bar'))
		self.assertEqual('../../x/b/foo', rel('/x/b/foo', '/x/y/bar',
			common_base='/'))
		self.assertEqual('../b/foo', rel('/x/b/foo', '/x/y/bar'))
		self.assertEqual('../b/foo', rel('/x/b/foo', '/x/y/bar'))

	def test_get_common_base(self):
		self.assertEqual('/', get_common_base('', ''))
		self.assertEqual('/', get_common_base('', '/'))
		self.assertEqual('/', get_common_base('/', ''))
		self.assertEqual('/', get_common_base('/', '/'))
		self.assertEqual('/', get_common_base('/bla/bar/x', '/foo/bar/a'))
		self.assertEqual('/foo/bar/', get_common_base('/foo/bar/x', '/foo/bar/a'))
		self.assertEqual('/foo/', get_common_base('/foo/bar/x', '/foo/baz/a'))
		self.assertEqual('/foo/', get_common_base('/foo/bar/x', '/foo/baz/a'))
		self.assertEqual('/', get_common_base('//foo/bar/x', '/foo/baz/a'))

if __name__ == '__main__': unittest.main()
class='alt'>
                                                                         

                                                                             
 




                                                                                                        
                                                      
 

                                                                                     
 
            
                                       

                         
 























                                                                                    




                                                                             

                                                                                




                                                                                 
          




                                                                            
              
                                                                                 
         
#+HTML_HEAD: <link rel="stylesheet" href="../static/style.css">
#+HTML_HEAD: <link rel="icon" href="../static/cetus/favicon.png" type="image/png">
#+EXPORT_FILE_NAME: index
#+TITLE: Cetus

Cetus is a simple wallpaper management tool written in Go. It supports multiple
sources for fetching the background. Currently it suports NASA Astronomy Picture
of the Day & Bing Photo of the Day.

| Project Home    | [[https://andinus.nand.sh/cetus/][Cetus]]           |
| Source Code     | [[https://tildegit.org/andinus/cetus][Andinus / Cetus]] |
| GitHub (Mirror) | [[https://github.com/andinus/cetus][Cetus - GitHub]]  |

| Demo Video                 |
|----------------------------|
| [[https://diode.zone/videos/watch/11af8886-7b75-400b-9c4d-05191bd55059][Cetus v0.6.0]]               |
| [[https://diode.zone/videos/watch/6d01245d-a6d0-4958-881d-f6df609d65ab][Cetus v0.6.0 Demo on macOS]] |

*Dependency*: /feh/ (optional), /libnotify/ (optional)

It supports /GNOME/, /Unity/, /LXDE/, /Pantheon/ & WM/DE similar to /i3wm/ (including
i3wm).

*Tested on*:
- OpenBSD 6.6 with i3wm (with /unveil/)
- Lubuntu 18.04 with LXDE
- macOS Catalina 10.15.3

* Examples
Run =cetus help= to get the usage printed & =cetus <command> <service> -help= to get
the flags for that particular service.

#+BEGIN_SRC sh
# set today's image as background
cetus set <service>  # <service>: apod, bpod

# set a random apod image as background
cetus set apod -random

# send a desktop notification
cetus <command> <service> -notify # <command>: set, fetch

# don't set background but fetch the information
cetus fetch <service>

# print details in terminal
cetus <command> <service> -print

# print and notify
cetus <command> <service> -print -notify
#+END_SRC

* Installation
** Pre-built binaries
Pre-built binaries are available for OpenBSD, FreeBSD, NetBSD, DragonFly BSD,
Linux & macOS.

If you don't understand what this command does then don't run it. It doesn't
download the binary, it will just print the steps to install cetus & you have to
run those commands manually.
*** v0.6.4
#+BEGIN_SRC sh
curl -s https://tildegit.org/andinus/cetus/raw/tag/v0.6.4/scripts/install.sh | sh
#+END_SRC
*** v0.6.0
*Warning*: Don't use random flag on BPOD, it has been disabled in v0.6.1 but
v0.6.0 will cause issues if random flag is used with BPOD.

=cetus set bpod -random # don't do this=

#+BEGIN_SRC sh
curl -s https://tildegit.org/andinus/cetus/raw/tag/v0.6.0/scripts/install.sh | sh
#+END_SRC