summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEevee (Alex Munroe) <eevee.git@veekun.com>2013-08-16 13:54:06 -0700
committerEevee (Alex Munroe) <eevee.git@veekun.com>2013-08-16 13:54:06 -0700
commit7109918828daf897ff7a931c3f5e5cb457b6f3d9 (patch)
treec23809b6497d43ccf57b297405ab6b278cd62c7c
parent681b33a0518daf3efb6747e8ad7bf9538a413ca2 (diff)
downloadpyscss-7109918828daf897ff7a931c3f5e5cb457b6f3d9.tar.gz
Make `pyscss -t` run the py.test suite.
-rw-r--r--scss/tests/tests.rst1277
-rw-r--r--scss/tool.py7
2 files changed, 5 insertions, 1279 deletions
diff --git a/scss/tests/tests.rst b/scss/tests/tests.rst
deleted file mode 100644
index 31007b4..0000000
--- a/scss/tests/tests.rst
+++ /dev/null
@@ -1,1277 +0,0 @@
-SCSS TESTS
-==========
-
-INITIALIZATION
---------------
-
->>> from scss import Scss
->>> css = Scss(scss_opts=dict(debug_info='comments'))
-
-VARIABLES
----------
-
-http://xcss.antpaw.org/docs/syntax/variables
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... @variables {
- ... $path = ../img/tmpl1/png;
- ... $color1 = #FF00FF;
- ... $border = border-top: 1px solid $color1;
- ... }
- ... .selector {
- ... background-image: url($path/head_bg.png);
- ... background-color: $color1;
- ... $border;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- background-image: url(../img/tmpl1/png/head_bg.png);
- background-color: #f0f;
- border-top: 1px solid #f0f;
- }
-
-
-NESTING CHILD OBJECTS
----------------------
-
-http://xcss.antpaw.org/docs/syntax/children
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... a {
- ... display: block;
- ... }
- ... strong {
- ... color: blue;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector a {
- display: block;
- }
- .selector strong {
- color: #00f;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... self {
- ... margin: 20px;
- ... }
- ... a {
- ... display: block;
- ... }
- ... strong {
- ... color: blue;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- margin: 20px;
- }
- .selector a {
- display: block;
- }
- .selector strong {
- color: #00f;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... self {
- ... margin: 20px;
- ... }
- ... a {
- ... display: block;
- ... }
- ... dl {
- ... dt {
- ... color: red;
- ... }
- ... dd {
- ... self {
- ... color: gray;
- ... }
- ... span {
- ... text-decoration: underline;
- ... }
- ... }
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- margin: 20px;
- }
- .selector a {
- display: block;
- }
- .selector dl dt {
- color: red;
- }
- .selector dl dd {
- color: gray;
- }
- .selector dl dd span {
- text-decoration: underline;
- }
-
-
-EXTENDING OBJECTS
------------------
-
-http://xcss.antpaw.org/docs/syntax/extends
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicClass {
- ... padding: 20px;
- ... background-color: #FF0000;
- ... }
- ... .specialClass extends .basicClass {}
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicClass,
- .specialClass {
- padding: 20px;
- background-color: red;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicClass {
- ... padding: 20px;
- ... background-color: #FF0000;
- ... }
- ... .specialClass extends .basicClass {
- ... padding: 10px;
- ... font-size: 14px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicClass,
- .specialClass {
- padding: 20px;
- background-color: red;
- }
- .specialClass {
- padding: 10px;
- font-size: 14px;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .specialClass extends .basicClass {
- ... padding: 10px;
- ... font-size: 14px;
- ... }
- ... .specialLink extends .basicClass a {}
- ... .basicClass {
- ... self {
- ... padding: 20px;
- ... background-color: #FF0000;
- ... }
- ... a {
- ... text-decoration: none;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicClass,
- .specialClass {
- padding: 20px;
- background-color: red;
- }
- .basicClass a,
- .specialClass a,
- .specialLink {
- text-decoration: none;
- }
- .specialClass {
- padding: 10px;
- font-size: 14px;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicList {
- ... li {
- ... padding: 5px 10px;
- ... border-bottom: 1px solid #000000;
- ... }
- ... dd {
- ... margin: 4px;
- ... }
- ... span {
- ... display: inline-block;
- ... }
- ... }
- ... .roundBox {
- ... some: props;
- ... }
- ... .specialClass extends .basicList & .roundBox {}
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicList li,
- .specialClass li {
- padding: 5px 10px;
- border-bottom: 1px solid #000;
- }
- .basicList dd,
- .specialClass dd {
- margin: 4px;
- }
- .basicList span,
- .specialClass span {
- display: inline-block;
- }
- .roundBox,
- .specialClass {
- some: props;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicList {
- ... li {
- ... padding: 5px 10px;
- ... border-bottom: 1px solid #000000;
- ... }
- ... dd {
- ... margin: 4px;
- ... }
- ... span {
- ... display: inline-block;
- ... }
- ... }
- ... .specialClass {
- ... dt extends .basicList li {}
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicList li,
- .specialClass dt {
- padding: 5px 10px;
- border-bottom: 1px solid #000;
- }
- .basicList dd {
- margin: 4px;
- }
- .basicList span {
- display: inline-block;
- }
-
-
-MATH OPERATIONS
----------------
-
-http://xcss.antpaw.org/docs/syntax/math
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... @variables {
- ... $color = #FFF555;
- ... }
- ... .selector {
- ... padding: [5px * 2];
- ... color: [#ccc * 2];
- ... // lets assume $color is '#FFF555'
- ... background-color: [$color - #222 + #101010];
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- padding: 10px;
- color: #fff;
- background-color: #ede343;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... padding: [(5px - 3) * (5px - 3)];
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- padding: 4px;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... padding: [5em - 3em + 5px]px;
- ... margin: [20 - 10] [30% - 10];
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- padding: 31px;
- margin: 10 20%;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .selector {
- ... padding: [4em / 2em];
- ... margin: [4em / 2em]em;
- ... width: [8px / 2px];
- ... height: [500px / 2];
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .selector {
- padding: 2;
- margin: 2em;
- width: 4;
- height: 250px;
- }
-
-SASS NESTING COMPATIBILITY
---------------------------
-
-http://sass-lang.com/tutorial.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ... #navbar {
- ... width: 80%;
- ... height: 23px;
- ...
- ... ul { list-style-type: none; }
- ... li {
- ... float: left;
- ... a { font-weight: bold; }
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #navbar {
- width: 80%;
- height: 23px;
- }
- #navbar ul {
- list-style-type: none;
- }
- #navbar li {
- float: left;
- }
- #navbar li a {
- font-weight: bold;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ... .fakeshadow {
- ... border: {
- ... style: solid;
- ... left: {
- ... width: 4px;
- ... color: #888;
- ... }
- ... right: {
- ... width: 2px;
- ... color: #ccc;
- ... }
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .fakeshadow {
- border-style: solid;
- border-left-width: 4px;
- border-left-color: #888;
- border-right-width: 2px;
- border-right-color: #ccc;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ... a {
- ... color: #ce4dd6;
- ... &:hover { color: #ffb3ff; }
- ... &:visited { color: #c458cb; }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a {
- color: #ce4dd6;
- }
- a:hover {
- color: #ffb3ff;
- }
- a:visited {
- color: #c458cb;
- }
-
-
-SASS VARIABLES COMPATIBILITY
-----------------------------
-
-http://sass-lang.com/tutorial.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ... $main-color: #ce4dd6;
- ... $style: solid;
- ...
- ... #navbar {
- ... border-bottom: {
- ... color: $main-color;
- ... style: $style;
- ... }
- ... }
- ...
- ... a {
- ... color: $main-color;
- ... &:hover { border-bottom: $style 1px; }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #navbar {
- border-bottom-color: #ce4dd6;
- border-bottom-style: solid;
- }
- a {
- color: #ce4dd6;
- }
- a:hover {
- border-bottom: solid 1px;
- }
-
-
-SASS INTERPOLATION COMPATIBILITY
---------------------------------
-
-http://sass-lang.com/tutorial.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ... $side: top;
- ... $radius: 10px;
- ...
- ... .rounded-#{$side} {
- ... border-#{$side}-radius: $radius;
- ... -moz-border-radius-#{$side}: $radius;
- ... -webkit-border-#{$side}-radius: $radius;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .rounded-top {
- border-top-radius: 10px;
- -moz-border-radius-top: 10px;
- -webkit-border-top-radius: 10px;
- }
-
-
-SASS MIXINS COMPATIBILITY
--------------------------
-
-http://sass-lang.com/tutorial.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ...
- ... @mixin rounded-top {
- ... $side: top;
- ... $radius: 10px;
- ...
- ... border-#{$side}-radius: $radius;
- ... -moz-border-radius-#{$side}: $radius;
- ... -webkit-border-#{$side}-radius: $radius;
- ... }
- ...
- ... #navbar li { @include rounded-top; }
- ... #footer { @include rounded-top; }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #navbar li {
- border-top-radius: 10px;
- -moz-border-radius-top: 10px;
- -webkit-border-top-radius: 10px;
- }
- #footer {
- border-top-radius: 10px;
- -moz-border-radius-top: 10px;
- -webkit-border-top-radius: 10px;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... /* style.scss */
- ...
- ... @mixin rounded($side, $radius: 10px) {
- ... border-#{$side}-radius: $radius;
- ... -moz-border-radius-#{$side}: $radius;
- ... -webkit-border-#{$side}-radius: $radius;
- ... }
- ...
- ... #navbar li { @include rounded(top); }
- ... #footer { @include rounded(top, 5px); }
- ... #sidebar { @include rounded(left, 8px); }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #navbar li {
- border-top-radius: 10px;
- -moz-border-radius-top: 10px;
- -webkit-border-top-radius: 10px;
- }
- #footer {
- border-top-radius: 5px;
- -moz-border-radius-top: 5px;
- -webkit-border-top-radius: 5px;
- }
- #sidebar {
- border-left-radius: 8px;
- -moz-border-radius-left: 8px;
- -webkit-border-left-radius: 8px;
- }
-
-
-SASS EXTEND COMPATIBILITY
--------------------------
-
-http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#extend
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .error {
- ... border: 1px #f00;
- ... background-color: #fdd;
- ... }
- ... .error.intrusion {
- ... background-image: url("/image/hacked.png");
- ... }
- ... .seriousError {
- ... @extend .error;
- ... border-width: 3px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .error,
- .seriousError {
- border: 1px red;
- background-color: #fdd;
- }
- .error.intrusion,
- .seriousError.intrusion {
- background-image: url("/image/hacked.png");
- }
- .seriousError {
- border-width: 3px;
- }
-
-
-### Multiple Extends
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .error {
- ... border: 1px #f00;
- ... background-color: #fdd;
- ... }
- ... .attention {
- ... font-size: 3em;
- ... background-color: #ff0;
- ... }
- ... .seriousError {
- ... @extend .error, .attention;
- ... border-width: 3px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .error,
- .seriousError {
- border: 1px red;
- background-color: #fdd;
- }
- .attention,
- .seriousError {
- font-size: 3em;
- background-color: #ff0;
- }
- .seriousError {
- border-width: 3px;
- }
-
- Multiple Extends
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .bad {
- ... color: red !important;
- ... }
- ... .error {
- ... border: 1px #f00;
- ... background-color: #fdd;
- ... }
- ... .attention {
- ... font-size: 3em;
- ... background-color: #ff0;
- ... }
- ... .seriousError {
- ... @extend .error, .attention;
- ... @extend .bad;
- ... border-width: 3px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .bad, .seriousError {
- color: red !important;
- }
- .error, .seriousError {
- border: 1px red;
- background-color: #fdd;
- }
- .attention, .seriousError {
- font-size: 3em;
- background-color: #ff0;
- }
- .seriousError {
- border-width: 3px;
- }
-
-
-
-FROM THE FORUM
---------------
-
-http://groups.google.com/group/xcss/browse_thread/thread/6989243973938362#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... body {
- ... _width: expression(document.body.clientWidth > 1440? "1440px" : "auto");
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- body {
- _width: expression(document.body.clientWidth > 1440? "1440px" : "auto");
- }
-
-
-http://groups.google.com/group/xcss/browse_thread/thread/2d27ddec3c15c385#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... @variables {
- ... $ie6 = *html;
- ... $ie7 = *:first-child+html;
- ... }
- ... $ie6 {
- ... .a { color:white; }
- ... .b { color:black; }
- ... }
- ... $ie7 {
- ... .a { color:white; }
- ... .b { color:black; }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- *html .a {
- color: #fff;
- }
- *html .b {
- color: #000;
- }
- *:first-child+html .a {
- color: #fff;
- }
- *:first-child+html .b {
- color: #000;
- }
-
-
-http://groups.google.com/group/xcss/browse_thread/thread/04faafb4ef178984#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicClass {
- ... padding: 20px;
- ... background-color: #FF0000;
- ... }
- ... .specialClass extends .basicClass {
- ... padding: 10px;
- ... font-size: 14px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .basicClass,
- .specialClass {
- padding: 20px;
- background-color: red;
- }
- .specialClass {
- padding: 10px;
- font-size: 14px;
- }
-
-
-ERRORS
-------
-
-http://groups.google.com/group/xcss/browse_thread/thread/5f4f3af046883c3b#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .some-selector { some:prop; }
- ... .some-selector-more { some:proop; }
- ... .parent {
- ... self extends .some-selector {
- ... height: auto
- ... }
- ... .children {
- ... self extends .some-selector-more {
- ... height: autoo
- ... }
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .parent,
- .some-selector {
- some: prop;
- }
- .parent .children,
- .some-selector-more {
- some: proop;
- }
- .parent {
- height: auto;
- }
- .parent .children {
- height: autoo;
- }
-
-
-http://groups.google.com/group/xcss/browse_thread/thread/540f8ad0771c053b#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .noticeBox {
- ... self {
- ... background-color:red;
- ... }
- ... span, p {
- ... some: props
- ... }
- ... }
- ... .errorBox extends .noticeBox {}
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .errorBox,
- .noticeBox {
- background-color: red;
- }
- .errorBox p,
- .errorBox span,
- .noticeBox p,
- .noticeBox span {
- some: props;
- }
-
-http://groups.google.com/group/xcss/browse_thread/thread/b5757c24586c1519#
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .mod {
- ... self {
- ... margin: 10px;
- ... }
- ... h1 {
- ... font-size:40px;
- ... }
- ... }
- ... .cleanBox extends .mod {
- ... h1 {
- ... font-size:60px;
- ... }
- ... }
- ... .cleanBoxExtended extends .cleanBox {}
- ... .articleBox extends .cleanBox {}
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .articleBox,
- .cleanBox,
- .cleanBoxExtended,
- .mod {
- margin: 10px;
- }
- .articleBox h1,
- .cleanBox h1,
- .cleanBoxExtended h1,
- .mod h1 {
- font-size: 40px;
- }
- .articleBox h1,
- .cleanBox h1,
- .cleanBoxExtended h1 {
- font-size: 60px;
- }
-
-
-TESTS
------
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... @function percent-width(
- ... $t,
- ... $c
- ... ) {
- ... $perc: ($t / $c) * 100%;
- ... @return $perc;
- ... }
- ...
- ... a {
- ... width: percent-width(12, 80);
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a {
- width: 15%;
- }
-
-http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... a {
- ... $color: rgba(0.872536*255, 0.48481984*255, 0.375464*255, 1);
- ... color: $color;
- ... color: hsl(13.2, 0.661, 0.624);
- ... color-hue: hue($color); // 60deg
- ... color-saturation: saturation($color); // 60%
- ... color-lightness: lightness($color); // 50%
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a {
- color: rgb(87.254%, 48.482%, 37.546%);
- color: hsl(13.2, 66.1%, 62.4%);
- color-hue: 13.2deg;
- color-saturation: 66.1%;
- color-lightness: 62.4%;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .functions {
- ... opacify1: opacify(rgba(0, 0, 0, 0.5), 0.1); // rgba(0, 0, 0, 0.6)
- ... opacify2: opacify(rgba(0, 0, 17, 0.8), 0.2); // #001
- ...
- ... transparentize1: transparentize(rgba(0, 0, 0, 0.5), 0.1); // rgba(0, 0, 0, 0.4)
- ... transparentize2: transparentize(rgba(0, 0, 0, 0.8), 0.2); // rgba(0, 0, 0, 0.6)
- ...
- ... lighten1: lighten(hsl(0, 0%, 0%), 30%); // hsl(0, 0, 30)
- ... lighten2: lighten(#800, 20%); // #e00
- ...
- ... darken1: darken(hsl(25, 100%, 80%), 30%); // hsl(25deg, 100%, 50%)
- ... darken2: darken(#800, 20%); // #200
- ...
- ... saturate1: saturate(hsl(120, 30%, 90%), 20%); // hsl(120deg, 50%, 90%)
- ... saturate2: saturate(#855, 20%); // #9e3f3f
- ...
- ... desaturate1: desaturate(hsl(120, 30%, 90%), 20%); // hsl(120deg, 10%, 90%)
- ... desaturate2: desaturate(#855, 20%); // #726b6b
- ...
- ... adjust1: adjust-hue(hsl(120, 30%, 90%), 60deg); // hsl(180deg, 30%, 90%)
- ... adjust2: adjust-hue(hsl(120, 30%, 90%), -60deg); // hsl(60deg, 30%, 90%)
- ... adjust3: adjust-hue(#811, 45deg); // #886a11
- ...
- ... mix1: mix(#f00, #00f, 50%); // purple
- ... mix2: mix(#f00, #00f, 25%); // #4000bf
- ... mix3: mix(rgba(255, 0, 0, 0.5), #00f, 50%); // rgba(64, 0, 191, 0.75)
- ...
- ... percentage1: percentage(100px / 50px); // 200%
- ...
- ... round1: round(10.4px); // 10px
- ... round2: round(10.6px); // 11px
- ...
- ... ceil1: ceil(10.4px); // 11px
- ... ceil2: ceil(10.6px); // 11px
- ...
- ... floor1: floor(10.4px); // 10px
- ... floor2: floor(10.6px); // 10px
- ...
- ... abs1: abs(10px); // 10px
- ... abs2: abs(-10px); // 10px
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .functions {
- opacify1: rgba(0, 0, 0, 0.6);
- opacify2: #001;
- transparentize1: rgba(0, 0, 0, 0.4);
- transparentize2: rgba(0, 0, 0, 0.6);
- lighten1: hsl(0, 0%, 30%);
- lighten2: #e00;
- darken1: hsl(25, 100%, 50%);
- darken2: #200;
- saturate1: hsl(120, 50%, 90%);
- saturate2: #9e3f3f;
- desaturate1: hsl(120, 10%, 90%);
- desaturate2: #726b6b;
- adjust1: hsl(180, 30%, 90%);
- adjust2: hsl(60, 30%, 90%);
- adjust3: #886a11;
- mix1: purple;
- mix2: #4000bf;
- mix3: rgba(64, 0, 191, 0.75);
- percentage1: 200%;
- round1: 10px;
- round2: 11px;
- ceil1: 11px;
- ceil2: 11px;
- floor1: 10px;
- floor2: 10px;
- abs1: 10px;
- abs2: 10px;
- }
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .coloredClass {
- ... $mycolor: green;
- ... padding: 20px;
- ... background-color: $mycolor;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .coloredClass {
- padding: 20px;
- background-color: green;
- }
-
- >>> css._scss_files = {}
- >>> css._scss_files['first.css'] = '''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .specialClass extends .basicClass {
- ... padding: 10px;
- ... font-size: 14px;
- ... }
- ... '''
- >>> css._scss_files['second.css'] = '''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .basicClass {
- ... padding: 20px;
- ... background-color: #FF0000;
- ... }
- ... '''
- >>> print css.compile() #doctest: +NORMALIZE_WHITESPACE
- /* 1 selector generated from 'second.css' add up to a total of 1 selector accumulated */
- /* file: second.css, line: 3 */
- .basicClass,
- .specialClass {
- padding: 20px;
- background-color: red;
- }
- /* 1 selector generated from 'first.css' add up to a total of 2 selectors accumulated */
- /* file: first.css, line: 3 */
- .specialClass {
- padding: 10px;
- font-size: 14px;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... a, button {
- ... color: blue;
- ... &:hover, .some & {
- ... text-decoration: underline;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a,
- button {
- color: #00f;
- }
- .some a,
- .some button,
- a:hover,
- button:hover {
- text-decoration: underline;
- }
-
-
-All styles defined for a:hover are also applied to .hoverlink:
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... a:hover { text-decoration: underline }
- ... .hoverlink { @extend a:hover }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .hoverlink,
- a:hover {
- text-decoration: underline;
- }
-
-
-http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... #fake-links .link {@extend a}
- ...
- ... a {
- ... color: blue;
- ... &:hover {text-decoration: underline}
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #fake-links .link,
- a {
- color: #00f;
- }
- #fake-links .link:hover,
- a:hover {
- text-decoration: underline;
- }
-
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... @each $animal in puma, sea-slug, egret, salamander {
- ... .#{$animal}-icon {
- ... background-image: url('/images/#{$animal}.png');
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .puma-icon {
- background-image: url(/images/puma.png);
- }
- .sea-slug-icon {
- background-image: url(/images/sea-slug.png);
- }
- .egret-icon {
- background-image: url(/images/egret.png);
- }
- .salamander-icon {
- background-image: url(/images/salamander.png);
- }
-
-
-TESTS FOR REPORTED ISSUES
--------------------------
-
-### Issue #2 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... #{enumerate(".pull", 1, 24)} {
- ... display: inline;
- ... float: left;
- ... position: relative;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .pull-1, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15,
- .pull-16, .pull-17, .pull-18, .pull-19, .pull-2, .pull-20, .pull-21,
- .pull-22, .pull-23, .pull-24, .pull-3, .pull-4, .pull-5, .pull-6,
- .pull-7, .pull-8, .pull-9 {
- display: inline;
- float: left;
- position: relative;
- }
-
-
-### Issue #4 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... $width: 150px;
- ... @mixin foo($width) {
- ... width: $width;
- ... }
- ... $other_width: 100px;
- ... .foo {
- ... @include foo($other_width);
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .foo {
- width: 100px;
- }
-
-
-### Issue #5 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... $width: 1px;
- ... foo {
- ... border: $width solid red;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- foo {
- border: 1px solid red;
- }
-
-
-### Issue #6 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... $type: monster;
- ... p {
- ... @if $type == ocean {
- ... color: blue;
- ... } @else if $type == matador {
- ... color: red;
- ... } @else if $type == monster {
- ... color: green;
- ... } @else {
- ... color: black;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- p {
- color: green;
- }
-
-
-### Issue #7 test
-
- >>> print css.compile('''
- ... @option compress: no, short_colors: no;
- ... a.button:hover {
- ... color: #000000;
- ... }
- ... button:hover {
- ... @extend a.button:hover;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a.button:hover, button:hover {
- color: #000000;
- }
-
-
-### Issue #10 test
- >>> print css.compile('''
- ... @option compress: no, short_colors: no;
- ... .yellow {
- ... color: yelow;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .yellow {
- color: yelow;
- }
-
-
-### Issue #21 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors: no;
- ... h2 {
- ... background: green;
- ... @media screen{
- ... background:blue;
- ... }
- ... }
- ... h1 {
- ... background:yellow;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- h2 {
- background: #008000;
- }
- @media screen {
- h2 {
- background: #0000ff;
- }
- }
- h1 {
- background: #ffff00;
- }
-
-
-### Issue #32 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors: no;
- ... @media (max-width:1024px) {
- ... .wrap {
- ... padding: 10px 0;
- ... }
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- @media (max-width:1024px) {
- .wrap {
- padding: 10px 0;
- }
- }
-
-
-### Issue #40 test
-
- >>> print css.compile('''
- ... @option compress:no, short_colors: no;
- ... a {
- ... background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwA...");
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- a {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwA...");
- }
-
-
-### Issue #110 test
-
- >>> print css.compile('''
- ... @option compress:no, reverse_colors:yes;
- ... $global: blue;
- ... @mixin box {
- ... $global: red;
- ... color: $global;
- ... }
- ... p {
- ... @include box();
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- p {
- color: red;
- }
-
-
-ADVANCED STUFF, NOT (YET) SUPPORTED (FROM SASS)
------------------------------------------------
-
- >> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .mod {
- ... margin: 10px;
- ... }
- ... .mod h1 {
- ... font-size: 40px;
- ... }
- ... .cleanBox h1 extends .mod {
- ... font-size: 60px;
- ... }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .cleanBox h1, .mod {
- margin: 10px;
- }
- .cleanBox h1, .mod h1 {
- font-size: 40px;
- }
- .cleanBox h1 {
- font-size: 60px;
- }
-
-http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html
-
-Any rule that uses a:hover will also work for .hoverlink, even if they have other selectors as well
-
- >> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... .comment a.user:hover { font-weight: bold }
- ... .hoverlink { @extend a:hover }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- .comment a.user:hover,
- .comment .hoverlink.user {
- font-weight: bold;
- }
-
-
-Sometimes a selector sequence extends another selector that appears in another
-sequence. In this case, the two sequences need to be merged.
-While it would technically be possible to generate all selectors that could
-possibly match either sequence, this would make the stylesheet far too large.
-The simple example above, for instance, would require ten selectors. Instead,
-Sass generates only selectors that are likely to be useful.
-
- >> print css.compile('''
- ... @option compress:no, short_colors:yes, reverse_colors:yes;
- ... #admin .tabbar a { font-weight: bold }
- ... #demo .overview .fakelink { @extend a }
- ... ''') #doctest: +NORMALIZE_WHITESPACE
- #admin .tabbar a,
- #admin .tabbar #demo .overview .fakelink,
- #demo .overview #admin .tabbar .fakelink {
- font-weight: bold;
- }
diff --git a/scss/tool.py b/scss/tool.py
index 39bc08b..9b91966 100644
--- a/scss/tool.py
+++ b/scss/tool.py
@@ -107,8 +107,11 @@ def main():
# Execution modes
if options.test:
- import doctest
- doctest.testfile('tests/tests.rst')
+ try:
+ import pytest
+ except ImportError:
+ raise ImportError("You need py.test installed to run the test suite.")
+ pytest.main("") # don't let py.test re-consume our arguments
elif options.version:
print(BUILD_INFO)
elif options.interactive: