Marking Test Functions Using Attributes

Python 3: Automating Your Job Tasks Superhero Level: Automate Unit Testing with Python 3
6 minutes
Share the link to this page
You need to have access to the item to view this lesson.
One-time Fee
List Price:  $139.99
You save:  $40
List Price:  €128.82
You save:  €36.80
List Price:  £109.74
You save:  £31.35
List Price:  CA$191.13
You save:  CA$54.61
List Price:  A$210.68
You save:  A$60.19
List Price:  S$188.83
You save:  S$53.95
List Price:  HK$1,092.95
You save:  HK$312.29
CHF 91.34
List Price:  CHF 127.88
You save:  CHF 36.54
NOK kr1,052.31
List Price:  NOK kr1,473.28
You save:  NOK kr420.96
DKK kr686.58
List Price:  DKK kr961.24
You save:  DKK kr274.66
List Price:  NZ$227.97
You save:  NZ$65.13
List Price:  د.إ514.17
You save:  د.إ146.91
List Price:  ৳16,408.23
You save:  ৳4,688.40
List Price:  ₹11,637.16
You save:  ₹3,325.14
List Price:  RM657.67
You save:  RM187.92
List Price:  ₦206,269.66
You save:  ₦58,938.40
List Price:  ₨38,916.02
You save:  ₨11,119.65
List Price:  ฿5,127.43
You save:  ฿1,465.08
List Price:  ₺4,505.30
You save:  ₺1,287.32
List Price:  B$723.91
You save:  B$206.84
List Price:  R2,571.91
You save:  R734.88
List Price:  Лв252.38
You save:  Лв72.11
List Price:  ₩190,499.14
You save:  ₩54,432.21
List Price:  ₪515.38
You save:  ₪147.26
List Price:  ₱8,140.48
You save:  ₱2,326.02
List Price:  ¥21,963.82
You save:  ¥6,275.82
List Price:  MX$2,336.09
You save:  MX$667.50
List Price:  QR510.10
You save:  QR145.75
List Price:  P1,900.64
You save:  P543.07
List Price:  KSh18,618.67
You save:  KSh5,320
List Price:  E£6,599.78
You save:  E£1,885.78
List Price:  ብር8,037.80
You save:  ብር2,296.67
List Price:  Kz118,908.34
You save:  Kz33,976.24
List Price:  CLP$126,117.11
You save:  CLP$36,036.03
List Price:  CN¥1,014.10
You save:  CN¥289.76
List Price:  RD$8,237.97
You save:  RD$2,353.87
List Price:  DA18,843.53
You save:  DA5,384.25
List Price:  FJ$311.92
You save:  FJ$89.12
List Price:  Q1,086.64
You save:  Q310.49
List Price:  GY$29,266.81
You save:  GY$8,362.54
ISK kr13,793.62
List Price:  ISK kr19,311.62
You save:  ISK kr5,518
List Price:  DH1,395.33
You save:  DH398.69
List Price:  L2,480.56
You save:  L708.78
List Price:  ден7,930.17
You save:  ден2,265.92
List Price:  MOP$1,125.70
You save:  MOP$321.65
List Price:  N$2,570.90
You save:  N$734.59
List Price:  C$5,148.73
You save:  C$1,471.17
List Price:  रु18,603.56
You save:  रु5,315.68
List Price:  S/522.95
You save:  S/149.42
List Price:  K543.64
You save:  K155.33
List Price:  SAR525.05
You save:  SAR150.02
List Price:  ZK3,733.66
You save:  ZK1,066.83
List Price:  L641.14
You save:  L183.19
List Price:  Kč3,187.01
You save:  Kč910.64
List Price:  Ft49,549.41
You save:  Ft14,157.98
SEK kr1,062.40
List Price:  SEK kr1,487.41
You save:  SEK kr425
List Price:  ARS$124,696.09
You save:  ARS$35,630
List Price:  Bs966.60
You save:  Bs276.19
List Price:  COP$540,370.17
You save:  COP$154,402.50
List Price:  ₡71,720.93
You save:  ₡20,493.15
List Price:  L3,457
You save:  L987.78
List Price:  ₲1,052,195.01
You save:  ₲300,648.62
List Price:  $U5,389.29
You save:  $U1,539.90
List Price:  zł547.82
You save:  zł156.53
Already have an account? Log In


In this lecture, we are going to cover yet another important concept that you need to know about when using pi test for test automation. And that is marking your test functions. For this video, I am reusing the calculator app from the first part of this course section. And the test underscore calculation.pi test module that groups several tests together inside the class and tests the results returned by the calculator when using each of the Excel values. You can download all the files needed for this lecture from the notebook following this video, the calculator app, let me open up this as well. Notice that I'm currently located in a separate folder in a new folder called marking.

So the calculator app is the same as the one we tested earlier in this section. So I'm going to jump right to the test module and see what builds In markers are available for our test functions and how to use each of them. First of all, notice that in order to mark a test function you need to decorate it using at pi test dot mark and the name of the marker that you want to use. By the way, don't forget to import pi tests up here at the top of your script. So the first marker I used is called skip this one right here, and its role is to make sure that the test function right below it is going to be skipped when this entire test module gets executed. Also, we can provide a reason using the reason parameter for why this test gets skipped and that reason will be printed out to the screen at runtime.

The next marker that you should know about is skip if this marker also enables a certain test function to be skipped when running the test module. However, this time we can set a condition If that condition is met, then the test will be skipped. And that's just what I did for the next three test functions in this class. First, the test underscore index one function gets skipped only if the version of Python currently running on this system is greater than or equal to three dot seven dot two. I currently have this exact version on my computer three dot seven dot two. And since the condition says greater than or equal to this test is also going to be skipped when I'm going to run this test module.

Next, the test underscore index to function is also going to be skipped. Since the condition here is that if the operating system platform is when 32 so sis platform equals equals when 32 meaning windows, then the test shouldn't be executed. In my case, I have Windows 10 here so this test will be skipped as well. The next function called test underscore in Next three will be skipped as well if the current build version of the Windows operating system is greater than or equal to 16 to 99. Since this is the exact build that I have, this test function will be skipped as well. Now let's notice two things about the three test functions that we just discussed.

First, I provided a reason for each of them using the reason argument, and we are going to see each of these reasons being printed out to the screen very soon. Secondly, don't forget to import the SIS module at the top of your application. In order to be able to use the specific attributes I used to get the version of Python or the windows built version. The test underscore index for function isn't decorated using pi test dot mark and the specific marker. However, I wanted to show you how you can skip a test function depending on whether a certain Python module can be imported to the test module or not. Assuming you need a specific dependency to run this test, then you can use the import or skip method from the PI test module to check if that particular dependency can be imported or not.

In my case, I am trying to import Django right here. But since I don't have Django installed on this computer, then the importing operation fails and the test will be skipped as well. Another marker that you can use is x fail, and I'm using it on the test underscore index five function. This marker is used whenever you expect a certain test to fail. Additionally, you can specify a reason for the expected failure using the reason argument and also an exception or a couple of exceptions using the raises argument. What's the deal with this exception?

Well, let's take the example in my code. I provided the assertion error exception to the raises argument if this test fails. Due to any other exception besides assertion error, then the test will be marked as failed at runtime. Otherwise, if the test fails as expected, meaning due to an assertion error exception, then it will be marked as x fail, meaning expected fail. If you need to provide multiple exceptions to the racist argument, then you should simply include them all inside the topple. Now the big moment, it's time to run this test module and see if we end up with five skipped test and unexpected fail.

Moreover, to also see the reasons behind each script test, you should use the following options with the PI test command. So let me open up the windows command line D, CD marking, Enter. And now I'm going to use PI test dash v r S dash disable warning. And finally we have test underscore calculation dot p y Enter. As expected, we have five skipped tests and one x failed. Furthermore, you can also see the reasons being shown in the short test summary info section.

Okay, so this is the way in which you can use markers to mark your test functions and define expected outcomes of your tests.

Sign Up


Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.