diff --git a/lib/anaconda.pm b/lib/anaconda.pm
--- a/lib/anaconda.pm
+++ b/lib/anaconda.pm
@@ -8,7 +8,7 @@
 use testapi;
 use utils;
 
-our @EXPORT = qw/select_disks custom_scheme_select custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo get_mirrorlist_url/;
+our @EXPORT = qw/select_disks custom_scheme_select custom_blivet_add_partition custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo get_mirrorlist_url/;
 
 sub select_disks {
     # Handles disk selection. Has one optional argument - number of
@@ -79,8 +79,11 @@
         assert_and_click "anaconda_spoke_done";
     }
 
-    # If this is a custom partitioning test, select custom partitioning.
-    if (get_var('PARTITIONING') =~ /^custom_/) {
+    # If this is a custom partitioning test, select custom partitioning. For testing blivet-gui,
+    # name of test module should start with custom_blivet_, otherwise it should start with custom_.
+    if (get_var('PARTITIONING') =~ /^custom_blivet_/) {
+        assert_and_click "anaconda_manual_blivet_partitioning";
+    } elsif (get_var('PARTITIONING') =~ /^custom_/) {
         assert_and_click "anaconda_manual_partitioning";
     }
 }
@@ -99,6 +102,71 @@
     assert_and_click "anaconda_part_scheme_$scheme";
 }
 
+sub custom_blivet_add_partition {
+    # Used to add partition on blivet-gui partitioning screen
+    # in Anaconda. Should be called when blivet-gui is displayed and free space is selected.
+    # You can pass device type for partition (needle tagged anaconda_blivet_devicetype_$devicetype should exist),
+    # whether partitions should be of RAID1 (devicetype is then automatically handled) - you then
+    # need to have two disks added, size of that partition in MBs, desired filesystem of that partition
+    # (anaconda_blivet_part_fs_$filesystem should exist) and mountpoint of that partition (e. g. string "/boot").
+    my %args = (
+        devicetype => "",
+        raid1 => 0,
+        size => 0,
+        filesystem => "",
+        mountpoint => "",
+        @_
+    );
+    $args{devicetype} = "raid" if $args{raid1};
+
+    assert_and_click "anaconda_blivet_part_add";
+    mouse_set(10, 10);
+    if ($args{devicetype}) {
+        assert_and_click "anaconda_blivet_part_devicetype";
+        mouse_set(10, 10);
+        assert_and_click "anaconda_blivet_part_devicetype_$args{devicetype}";
+    }
+
+    if ($args{raid1}) {
+        # for RAID1, two disks should be selected
+        send_key "tab";
+        send_key "down";
+        send_key "spc";
+        assert_screen "anaconda_blivet_vdb_selected";
+
+        assert_and_click "anaconda_blivet_raidlevel_select";
+        mouse_set(10, 10);
+        assert_and_click "anaconda_blivet_raidlevel_raid1";
+    }
+
+    if ($args{size}) {
+        type_safely "\t\t";
+        # if we clicked on "raidlevel" before, we need to type only two tabs,
+        # otherwise size input box is still one tab away
+        if (!$args{raid1}) {
+            send_key "tab";
+        }
+        # size input can contain whole set of different values, so we can't match it with needle
+        type_safely $args{size} . "\n";
+    }
+    # if no filesystem was specified or filesystem is already selected, do nothing
+    if ($args{filesystem} && !check_screen("anaconda_blivet_part_fs_$args{filesystem}_selected", 5)) {
+        assert_and_click "anaconda_blivet_part_fs";
+        # Move the mouse away from the menu
+        mouse_set(10, 10);
+        assert_and_click "anaconda_blivet_part_fs_$args{filesystem}";
+    }
+    if ($args{mountpoint}) {
+        assert_and_click "anaconda_blivet_mountpoint";
+        type_safely $args{mountpoint} . "\n";
+    }
+    assert_and_click "anaconda_blivet_btn_ok";
+    # select "free space" in blivet-gui if it exists, so we could run this function again to add another partition
+    if (check_screen("anaconda_blivet_free_space", 5)) {
+        assert_and_click "anaconda_blivet_free_space";
+    }
+}
+
 sub custom_change_type {
     # Used to set different device types for specified partition (e.g.
     # RAID). Should be called when custom partitioning spoke is
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_btn_ok-20170412.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_btn_ok-20170412.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_btn_ok-20170412.json
@@ -0,0 +1,15 @@
+{
+  "tags": [
+    "anaconda_blivet_btn_ok"
+  ],
+  "properties": [],
+  "area": [
+    {
+      "xpos": 710,
+      "ypos": 582,
+      "width": 71,
+      "height": 26,
+      "type": "match"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_btn_ok-20170412.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_btn_ok-20170412.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_free_space-20170412.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_free_space-20170412.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_free_space-20170412.json
@@ -0,0 +1,16 @@
+{
+  "tags": [
+    "LANGUAGE-english",
+    "anaconda_blivet_free_space"
+  ],
+  "properties": [],
+  "area": [
+    {
+      "xpos": 247,
+      "ypos": 336,
+      "width": 64,
+      "height": 16,
+      "type": "match"
+    }
+  ]
+}
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_free_space-20170412.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_free_space-20170412.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_lvm_drive-20170420.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_lvm_drive-20170420.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_lvm_drive-20170420.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 39,
+      "ypos": 186,
+      "width": 36,
+      "height": 35,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_lvm_drive"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_lvm_drive-20170420.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_lvm_drive-20170420.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20170421.json
@@ -0,0 +1,16 @@
+{
+  "tags": [
+    "LANGUAGE-english",
+    "anaconda_blivet_mountpoint"
+  ],
+  "area": [
+    {
+      "width": 215,
+      "type": "match",
+      "ypos": 485,
+      "xpos": 333,
+      "height": 24
+    }
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_obscured-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_obscured-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_obscured-20170421.json
@@ -0,0 +1,16 @@
+{
+  "area": [
+    {
+      "height": 20,
+      "xpos": 282,
+      "type": "match",
+      "ypos": 658,
+      "width": 206
+    }
+  ],
+  "tags": [
+    "LANGUAGE-english",
+    "anaconda_blivet_mountpoint"
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_obscured-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_obscured-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_add-20170412.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_add-20170412.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_add-20170412.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 232,
+      "ypos": 253,
+      "width": 26,
+      "height": 27,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_part_add"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_add-20170412.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_add-20170412.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype-20170421.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "height": 26,
+      "width": 164,
+      "xpos": 330,
+      "type": "match",
+      "ypos": 170
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_part_devicetype"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm-20170420.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm-20170420.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm-20170420.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 414,
+      "ypos": 199,
+      "width": 42,
+      "height": 26,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_part_devicetype_lvm"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm-20170420.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm-20170420.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm2_selected-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm2_selected-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm2_selected-20170421.json
@@ -0,0 +1,15 @@
+{
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_part_devicetype"
+  ],
+  "area": [
+    {
+      "ypos": 158,
+      "width": 210,
+      "height": 15,
+      "type": "match",
+      "xpos": 335
+    }
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm2_selected-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvm2_selected-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvmthin-20170420.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvmthin-20170420.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvmthin-20170420.json
@@ -0,0 +1,15 @@
+{
+  "tags": [
+    "anaconda_blivet_part_devicetype_lvmthin"
+  ],
+  "area": [
+    {
+      "xpos": 454,
+      "ypos": 186,
+      "width": 56,
+      "height": 19,
+      "type": "match"
+    }
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvmthin-20170420.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_lvmthin-20170420.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_raid-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_raid-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_raid-20170421.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "width": 91,
+      "ypos": 262,
+      "xpos": 415,
+      "type": "match",
+      "height": 18
+    }
+  ],
+  "tags": [
+    "anaconda_blivet_part_devicetype_raid"
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_raid-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_devicetype_raid-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs-20170421.json
@@ -0,0 +1,17 @@
+{
+  "area": [
+    {
+      "xpos": 342,
+      "ypos": 397,
+      "width": 167,
+      "height": 24,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "LANGUAGE-english",
+    "anaconda_blivet_part_fs",
+    "anaconda_blivet_part_fs_xfs_selected"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_ext3-20170412.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_ext3-20170412.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_ext3-20170412.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 413,
+      "ypos": 371,
+      "width": 55,
+      "height": 21,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_part_fs_ext3"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_ext3-20170412.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_ext3-20170412.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_swap-20170412.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_swap-20170412.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_swap-20170412.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 414,
+      "ypos": 456,
+      "width": 69,
+      "height": 26,
+      "type": "match"
+    }
+  ],
+  "tags": [
+    "anaconda_blivet_part_fs_swap"
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_swap-20170412.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_swap-20170412.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_xfs-20170418.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_xfs-20170418.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_xfs-20170418.json
@@ -0,0 +1,15 @@
+{
+  "properties": [],
+  "area": [
+    {
+      "xpos": 414,
+      "ypos": 515,
+      "width": 83,
+      "height": 23,
+      "type": "match"
+    }
+  ],
+  "tags": [
+    "anaconda_blivet_part_fs_xfs"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_xfs-20170418.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_part_fs_xfs-20170418.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_raid1-20170419.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_raid1-20170419.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_raid1-20170419.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 363,
+      "ypos": 173,
+      "width": 53,
+      "height": 21,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_raidlevel_raid1"
+  ]
+}
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_raid1-20170419.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_raid1-20170419.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_select-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_select-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_select-20170421.json
@@ -0,0 +1,15 @@
+{
+  "area": [
+    {
+      "xpos": 322,
+      "height": 24,
+      "width": 99,
+      "type": "match",
+      "ypos": 200
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "anaconda_blivet_raidlevel_select"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_select-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_raidlevel_select-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_thinpool_part-20170420.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_thinpool_part-20170420.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_thinpool_part-20170420.json
@@ -0,0 +1,15 @@
+{
+  "tags": [
+    "anaconda_blivet_thinpool_part"
+  ],
+  "area": [
+    {
+      "xpos": 317,
+      "ypos": 338,
+      "width": 70,
+      "height": 12,
+      "type": "match"
+    }
+  ],
+  "properties": []
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_thinpool_part-20170420.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_thinpool_part-20170420.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_vdb_selected-20170419.json b/needles/anaconda/partitioning/blivet/anaconda_blivet_vdb_selected-20170419.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_blivet_vdb_selected-20170419.json
@@ -0,0 +1,15 @@
+{
+  "properties": [],
+  "area": [
+    {
+      "xpos": 368,
+      "ypos": 166,
+      "width": 51,
+      "height": 14,
+      "type": "match"
+    }
+  ],
+  "tags": [
+    "anaconda_blivet_vdb_selected"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_blivet_vdb_selected-20170419.png b/needles/anaconda/partitioning/blivet/anaconda_blivet_vdb_selected-20170419.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/needles/anaconda/partitioning/blivet/anaconda_manual_blivet_partitioning-20170421.json b/needles/anaconda/partitioning/blivet/anaconda_manual_blivet_partitioning-20170421.json
new file mode 100644
--- /dev/null
+++ b/needles/anaconda/partitioning/blivet/anaconda_manual_blivet_partitioning-20170421.json
@@ -0,0 +1,16 @@
+{
+  "area": [
+    {
+      "xpos": 430,
+      "ypos": 489,
+      "width": 120,
+      "height": 18,
+      "type": "match"
+    }
+  ],
+  "properties": [],
+  "tags": [
+    "LANGUAGE-english",
+    "anaconda_manual_blivet_partitioning"
+  ]
+}
\ No newline at end of file
diff --git a/needles/anaconda/partitioning/blivet/anaconda_manual_blivet_partitioning-20170421.png b/needles/anaconda/partitioning/blivet/anaconda_manual_blivet_partitioning-20170421.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/templates b/templates
--- a/templates
+++ b/templates
@@ -899,6 +899,61 @@
                     },
                     {
                       machine    => { name => "64bit" },
+                      prio       => 90,
+                      product    => {
+                                      arch    => "x86_64",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_ext3" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 90,
+                      product    => {
+                                      arch    => "x86_64",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_no_swap" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 90,
+                      product    => {
+                                      arch    => "x86_64",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_xfs" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 90,
+                      product    => {
+                                      arch    => "x86_64",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_software_raid" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 90,
+                      product    => {
+                                      arch    => "x86_64",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_lvmthin" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
                       prio       => 50,
                       product    => {
                                       arch    => "x86_64",
@@ -1416,6 +1471,61 @@
                     },
                     {
                       machine    => { name => "64bit" },
+                      prio       => 93,
+                      product    => {
+                                      arch    => "i386",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_ext3" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 93,
+                      product    => {
+                                      arch    => "i386",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_no_swap" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 93,
+                      product    => {
+                                      arch    => "i386",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_xfs" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 93,
+                      product    => {
+                                      arch    => "i386",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_software_raid" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
+                      prio       => 93,
+                      product    => {
+                                      arch    => "i386",
+                                      distri  => "fedora",
+                                      flavor  => "universal",
+                                      version => "*",
+                                    },
+                      test_suite => { name => "install_blivet_lvmthin" },
+                    },
+                    {
+                      machine    => { name => "64bit" },
                       prio       => 82,
                       product    => {
                                       arch    => "i386",
@@ -1877,6 +1987,43 @@
                       ],
                     },
                     {
+                      name => "install_blivet_ext3",
+                      settings => [
+                        { key => "PARTITIONING", value => "custom_blivet_ext3" },
+                        { key => "ROOT_PASSWORD", value => "weakpassword" },
+                      ],
+                    },
+                    {
+                      name => "install_blivet_no_swap",
+                      settings => [
+                        { key => "PARTITIONING", value => "custom_blivet_no_swap" },
+                        { key => "ROOT_PASSWORD", value => "weakpassword" },
+                      ],
+                    },
+                    {
+                      name => "install_blivet_xfs",
+                      settings => [
+                        { key => "PARTITIONING", value => "custom_blivet_xfs" },
+                        { key => "ROOT_PASSWORD", value => "weakpassword" },
+                      ],
+                    },
+                    {
+                      name => "install_blivet_software_raid",
+                      settings => [
+                        { key => "PARTITIONING", value => "custom_blivet_software_raid" },
+                        { key => "POSTINSTALL", value => "disk_custom_software_raid_postinstall" },
+                        { key => "NUMDISKS", value => "2" },
+                        { key => "ROOT_PASSWORD", value => "weakpassword" },
+                      ],
+                    },
+                    {
+                      name => "install_blivet_lvmthin",
+                      settings => [
+                        { key => "PARTITIONING", value => "custom_blivet_lvmthin" },
+                        { key => "ROOT_PASSWORD", value => "weakpassword" },
+                      ],
+                    },
+                    {
                       name => "install_kickstart_hdd",
                       settings => [
                         { key => "KICKSTART", value => "1" },
diff --git a/tests/disk_custom_blivet_ext3.pm b/tests/disk_custom_blivet_ext3.pm
new file mode 100644
--- /dev/null
+++ b/tests/disk_custom_blivet_ext3.pm
@@ -0,0 +1,31 @@
+use base "anacondatest";
+use strict;
+use testapi;
+use anaconda;
+
+sub run {
+    my $self = shift;
+    # Go to INSTALLATION DESTINATION and ensure the disk is selected.
+    # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.
+    select_disks();
+    assert_and_click "anaconda_spoke_done";
+
+    custom_blivet_add_partition(size => 512, mountpoint => '/boot');
+    custom_blivet_add_partition(size => 2048, filesystem => 'swap');
+    custom_blivet_add_partition(filesystem => 'ext3', mountpoint => '/');
+
+    assert_and_click "anaconda_spoke_done";
+    assert_and_click "anaconda_part_accept_changes";
+
+    # Anaconda hub
+    assert_screen "anaconda_main_hub", 300; #
+
+}
+
+sub test_flags {
+    return { fatal => 1 };
+}
+
+1;
+
+# vim: set sw=4 et:
diff --git a/tests/disk_custom_blivet_lvmthin.pm b/tests/disk_custom_blivet_lvmthin.pm
new file mode 100644
--- /dev/null
+++ b/tests/disk_custom_blivet_lvmthin.pm
@@ -0,0 +1,39 @@
+use base "anacondatest";
+use strict;
+use testapi;
+use anaconda;
+
+sub run {
+    my $self = shift;
+    # Go to INSTALLATION DESTINATION and ensure the disk is selected.
+    # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.
+    select_disks();
+    assert_and_click "anaconda_spoke_done";
+
+    custom_blivet_add_partition(size => 512, mountpoint => '/boot');
+    # add new LVM device
+    custom_blivet_add_partition(devicetype => 'lvm');
+    # select newly created LVM device for adding new partition
+    assert_and_click "anaconda_blivet_lvm_drive";
+    custom_blivet_add_partition(size => 2048, filesystem => 'swap');
+    # add lvmthinpool
+    custom_blivet_add_partition(devicetype => 'lvmthin');
+    # select lvmthinpool for adding new partitions
+    assert_and_click "anaconda_blivet_thinpool_part";
+    custom_blivet_add_partition(mountpoint => '/');
+
+    assert_and_click "anaconda_spoke_done";
+    assert_and_click "anaconda_part_accept_changes";
+
+    # Anaconda hub
+    assert_screen "anaconda_main_hub", 300; #
+
+}
+
+sub test_flags {
+    return { fatal => 1 };
+}
+
+1;
+
+# vim: set sw=4 et:
diff --git a/tests/disk_custom_blivet_no_swap.pm b/tests/disk_custom_blivet_no_swap.pm
new file mode 100644
--- /dev/null
+++ b/tests/disk_custom_blivet_no_swap.pm
@@ -0,0 +1,32 @@
+use base "anacondatest";
+use strict;
+use testapi;
+use anaconda;
+
+sub run {
+    my $self = shift;
+    # Go to INSTALLATION DESTINATION and ensure the disk is selected.
+    # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.
+    select_disks();
+    assert_and_click "anaconda_spoke_done";
+
+    custom_blivet_add_partition(size => 512, mountpoint => '/boot');
+    custom_blivet_add_partition(mountpoint => '/');
+
+    assert_and_click "anaconda_spoke_done";
+    # click "done" second time, because it warns us about missing swap partition
+    assert_and_click "anaconda_spoke_done";
+    assert_and_click "anaconda_part_accept_changes";
+
+    # Anaconda hub
+    assert_screen "anaconda_main_hub", 300; #
+
+}
+
+sub test_flags {
+    return { fatal => 1 };
+}
+
+1;
+
+# vim: set sw=4 et:
diff --git a/tests/disk_custom_blivet_software_raid.pm b/tests/disk_custom_blivet_software_raid.pm
new file mode 100644
--- /dev/null
+++ b/tests/disk_custom_blivet_software_raid.pm
@@ -0,0 +1,31 @@
+use base "anacondatest";
+use strict;
+use testapi;
+use anaconda;
+
+sub run {
+    my $self = shift;
+    # Go to INSTALLATION DESTINATION and ensure two disks are selected.
+    # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.
+    select_disks(disks=>2);
+    assert_and_click "anaconda_spoke_done";
+
+    custom_blivet_add_partition(size => 512, mountpoint => '/boot');
+    custom_blivet_add_partition(size => 2048, filesystem => 'swap');
+    custom_blivet_add_partition(raid1 => 1, mountpoint => '/');
+
+    assert_and_click "anaconda_spoke_done";
+    assert_and_click "anaconda_part_accept_changes";
+
+    # Anaconda hub
+    assert_screen "anaconda_main_hub", 300; #
+
+}
+
+sub test_flags {
+    return { fatal => 1 };
+}
+
+1;
+
+# vim: set sw=4 et:
diff --git a/tests/disk_custom_blivet_xfs.pm b/tests/disk_custom_blivet_xfs.pm
new file mode 100644
--- /dev/null
+++ b/tests/disk_custom_blivet_xfs.pm
@@ -0,0 +1,31 @@
+use base "anacondatest";
+use strict;
+use testapi;
+use anaconda;
+
+sub run {
+    my $self = shift;
+    # Go to INSTALLATION DESTINATION and ensure the disk is selected.
+    # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.
+    select_disks();
+    assert_and_click "anaconda_spoke_done";
+
+    custom_blivet_add_partition(size => 512, mountpoint => '/boot');
+    custom_blivet_add_partition(size => 2048, filesystem => 'swap');
+    custom_blivet_add_partition(filesystem => 'xfs', mountpoint => '/');
+
+    assert_and_click "anaconda_spoke_done";
+    assert_and_click "anaconda_part_accept_changes";
+
+    # Anaconda hub
+    assert_screen "anaconda_main_hub", 300; #
+
+}
+
+sub test_flags {
+    return { fatal => 1 };
+}
+
+1;
+
+# vim: set sw=4 et:

